【问题标题】:How to find a google Drive file by ID?如何通过 ID 查找 google Drive 文件?
【发布时间】:2015-10-29 12:42:43
【问题描述】:

我正在做一个项目,我需要将文件上传到谷歌云端硬盘,以便通过其他应用下载。

我想使用通过创建文件获得的 Drive Id 稍后找到它,但这似乎不起作用。

我使用了来自 Google 的示例来获取 ID:

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        switch (requestCode) {

            case REQUEST_CODE_CREATOR:
                if (resultCode == RESULT_OK) {

                     driveId =  data.getParcelableExtra(
                            OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
                    showMessage("File created with ID: " + driveId);


                }

                break;
            default:
                super.onActivityResult(requestCode, resultCode, data);
                break;
        }
    }

到目前为止,这似乎有效,我正在获取驱动器 ID。

在此之后,我想使用示例"Files: get" from the Google Developers-page 对其进行测试,但出现以下错误:

 {
    "error": {
    "errors": [
    {
     "domain": "global",
     "reason": "notFound",
     "message": "File not found: CAESABiCASCQ1OnN-VMoAA==",
     "locationType": "other",
     "location": "file"
    }
     ],
     "code": 404,
     "message": "File not found: CAESABiCASCQ1OnN-VMoAA=="
     }
      }

这个ID好像不是查找文件的ID。

一定有什么我错过了,但我不知道是什么。

我是编程新手,尤其是 Google 和 Android,如果有人能帮助我解答他们的问题,我将非常高兴。

谢谢。

【问题讨论】:

    标签: android google-drive-api google-drive-android-api


    【解决方案1】:

    你的方法有两个问题。

    1/ 您不能将 DriveId 用于您的 Android 应用实例之外的任何内容,您必须使用 ResourceId(请参阅 SO 32210970

    2/ 您在上面显示的 DriveId 是 GooPlaySvcs 在提交(上传)对象之前返回的“初步”DriveId(请参阅SO 22874657)。此外,在提交对象之前,您无法获得有效的 ResourceId。

    另见SO 33355665SO 29030110

    如果您打算将 ResourceId 带到“外部”(到不同的应用程序),您会没事的。如果您决定在同一个 Android 应用程序中使用此 ResourceId,混合两个 API(GDAAREST),您可能会引入延迟问题,因为 GDAA 是您的应用程序和 REST api 之间的“缓冲”层(您已经遇到了“无效”DriveId)。

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多