The 完成事件在 Google Drive Android Api 中(GDAA)似乎仅由内容更改(文件创建、文件内容更新)调用。因为我需要检索文件夹的资源 ID(在这里看到一个包含内容的文件),参考这个方法:
DriveFolder.createFolder(mGAC, meta).setResultCallback(...);
我需要一个完成事件来创建文件夹,但我找不到解决方案。
有什么提示吗?谢谢。
不,这个问题的接受者,所以我认为没有直接的解决方案。与此同时,我拼凑了一个 hack,直到这个问题得到解决(如果有的话)。
1/ 创建一个文件夹,您将获得“初步”DriveId,该 DriveId 不会产生任何 ResourceId(未提交任何内容)。
2/ 使用此 DriveId 作为虚拟文件的父级,并附加虚拟内容和完成事件请求。现在显然是由它的子文件夹强制创建文件夹。
3/ 在完成事件中(如这里所见),获取虚拟文件的 DriveId 并检索其父 ID:
com.google.android.gms.common.api.GoogleApiClient GAC;
//...
DriveId parentID(DriveId dId) {
MetadataBuffer mdb = null;
DriveApi.MetadataBufferResult mbRslt = dId.asDriveResource().listParents(GAC).await();
if (mbRslt.getStatus().isSuccess()) try {
mdb = mbRslt.getMetadataBuffer();
if (mdb.getCount() > 0)
return mdb.get(0).getDriveId();
} catch (Exception e) { e.printStackTrace();}
finally {
if (mdb != null) mdb.close();
}
return null;
}
(“await()”风格在这里起作用,因为“DriveEventService”不在 UI 之外)
现在您获得了文件夹的“真实”DriveId,它可以生成有效的 ResourceId:
字符串资源Id =driveId.getResourceId()
4/ zap 完成其终生任务的虚拟文件
有更好的解决方案吗?请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)