我正在使用以下链接提供的Google Drive Rest APi Android Quickstart。 Android Quickstart
示例代码可以正常工作。但是,当我尝试从getCreatedTime()
或GetWevViewLink()
等文件中获取其他详细信息时,会返回“null”。只有getName()和getId()返回值。
答案 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() );
}
}