Google Drive REST API:file.getCreatedTime()返回null

时间:2016-10-21 07:06:44

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

我正在使用以下链接提供的Google Drive Rest APi Android QuickstartAndroid Quickstart

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

2 个答案:

答案 0 :(得分:2)

Google Drive REST API 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

了解有关此行为的更多信息

从上述链接引用 -

  

值得注意的变化

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

如果它适合您,请接受答案,以便面临此问题的其他人也可能受益。

答案 1 :(得分:0)

我认为您需要使用元数据类才能使用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() );

        }
    }