【问题标题】:Google Drive REST API : file.getCreatedTime() returns always nullGoogle Drive REST API:file.getCreatedTime() 始终返回 null
【发布时间】:2016-10-21 07:06:44
【问题描述】:

我正在与Android Quickstart 合作,以获取以下链接中提供的 Google Drive Rest APi。 Android Quickstart

示例代码可以正常工作。但是,当我尝试从 getCreatedTime()GetWevViewLink() 之类的文件中获取其他详细信息时,会返回“null”。只有 getName() 和 getId() 返回值。

【问题讨论】:

  • 那么 getCreatedDate() 呢?注意我猜我没有android的力量。 file.get 返回一个文件资源,您可能需要稍微玩一下developers.google.com/drive/v2/reference/files
  • 不。那是行不通的。我正在使用 V3 版本的 api。

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


【解决方案1】:

Google Drive REST APIs v3 只会返回某些默认字段。如果你需要某个字段,你必须通过.setFields() 方法设置它来显式请求它。

像这样修改你的代码 -

private List<String> getDataFromApi() throws IOException {
    // Get a list of up to 10 files.
    List<String> fileInfo = new ArrayList<String>();
    FileList result = mService.files().list()
         .setPageSize(10)

         // see createdTime added to list of requested fields
         .setFields("nextPageToken, files(createdTime,id,name)")                

         .execute();
    List<File> files = result.getFiles();
    if (files != null) {
        for (File file : files) {
            fileInfo.add(String.format("%s (%s)\n",
                    file.getName(), file.getId()));
        }
    }
    return fileInfo;
}

您可以在此处https://developers.google.com/drive/v3/web/migration 阅读有关此行为的更多信息 更新链接 https://developers.google.com/drive/api/v2/migration

引用以上链接-

显着变化

  • 默认情况下不再返回完整资源。使用 fields 查询参数请求返回特定的字段。如果未指定,则仅返回常用字段的子集。

如果它对您有用,请接受答案,以便其他面临此问题的人也可以从中受益。

【讨论】:

  • 谢谢,帮了大忙,尤其是链接坏了。
【解决方案2】:

我认为您需要使用元数据类才能使用getCreatedDate,如Working with File and Folder Metadata 所示。

然后尝试类似:

 ResultCallback<MetadataResult> metadataRetrievedCallback = new
            ResultCallback<MetadataResult>() {
        @Override
        public void onResult(MetadataResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Problem while trying to fetch metadata");
                return;
            }
            //show the date when file was created
            Metadata metadata = result.getMetadata();
            showMessage("File was created on " + metadata.getCreatedDate() );

        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2016-05-31
    • 2015-08-15
    • 2012-03-18
    • 2016-11-04
    • 2016-07-28
    • 2010-11-08
    相关资源
    最近更新 更多