用于文件夹创建的 Google Drive Android Api 完成事件

2023-11-30

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(使用前将#替换为@)

用于文件夹创建的 Google Drive Android Api 完成事件 的相关文章

随机推荐