【问题标题】:Google drive android API unable to retrieve file contentGoogle drive android API 无法检索文件内容
【发布时间】:2015-05-15 21:28:20
【问题描述】:

大家好,我计划在我的 android 端从我的谷歌驱动器中检索一些文档文件,但总是没有提及:

找不到驱动器项目,或者您无权访问它。

这是我的代码,问题部分是“EXISTING_FILE_ID”

private static final String EXISTING_FILE_ID = "0BxyOMAFcmxoYTkt6cHZwcUtaNlU";
private static final int REQUEST_CODE = 102;
private GoogleApiClient googleApiClient;
private static final String TAG = "retrieve_contents";

首先:我试图在谷歌驱动器上获取我的共享文档链接并选择键值示例,0BxyOMAFcmxoYTkt6cHZwcUtaNlU https://drive.google.com/file/d/0BxyOMAFcmxoYTkt6cHZwcUtaNlU/view?usp=sharing

第二:我使用我的android端应用程序创建一个文件,并检索了一个DriveId:CAESABiiHyCcwq2SpVMoAA==但仍然无法检索文件内容 这个问题让我很困惑几天有人帮助我吗?

【问题讨论】:

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


    【解决方案1】:

    从您提到“EXISTING_FILE_ID”的事实来看,我假设您指的是demo code here

    所以,回答上面称为“First”的问题:错误告诉您您正在尝试访问一个文件,而不是由您的 Android 应用创建的。 GDAA supports only SCOPE_FILE scope,例如只有 Android 应用程序创建的文件才能被找到、打开、修改……

    称为“第二”的点:您(可能)正确地尝试访问由您的 Android 应用程序创建的文件,但使用了不正确的 ID。我看到的 ID 是一个 'DriveId',不同于你应该使用的 'ResourceId' (see SO 29030110 here)。

    最直接的解决方案是通过

    将你的DriveId变成ResourceId
     DriveId driveId = DriveId.decodeFromString("DriveId:CAESABii.....");
     String EXISTING_FILE_ID = driveId.getResourceId();
    

    然后试试那个 ID。

    祝你好运

    【讨论】:

    【解决方案2】:

    @user2953788 你解决了这个问题吗?我有相同的示例,我可以看到 2 个潜在问题,这些问题可能会给您带来您提到的错误(您没有粘贴实际的错误日志)

    1) 您尚未授予对 Google 云端硬盘应用程序的访问权限(由于您遵循教程,因此不太可能) 2) 示例代码中 BaseDemoActivity.java 中的变量“public static final String EXISTING_FILE_ID”未更新为您在 Google 驱动器中拥有的最新 EXISTING_FILE_ID。每次您删除或添加文件时,ID 都会更改即使文件名未更改。这更有可能导致您的错误。我假设您知道如何查找 Google 驱动器中任何文件的 EXISTING_FILE_ID,如 Google 教程中所述。

    一切顺利!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-11
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多