我正在使用Android Quickstart獲取Google Drive Rest APi,該鏈接在以下鏈接提供。 Android QuickstartGoogle Drive REST API:file.getCreatedTime()返回始終爲空
示例代碼正常工作。但是,當我嘗試從getCreatedTime()
或GetWevViewLink()
等文件中獲取其他詳細信息時,將返回'null'。只有getName()和getId()纔會返回值。
我正在使用Android Quickstart獲取Google Drive Rest APi,該鏈接在以下鏈接提供。 Android QuickstartGoogle Drive REST API:file.getCreatedTime()返回始終爲空
示例代碼正常工作。但是,當我嘗試從getCreatedTime()
或GetWevViewLink()
等文件中獲取其他詳細信息時,將返回'null'。只有getName()和getId()纔會返回值。
我認爲您需要使用元數據類才能使用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());
}
}
谷歌驅動器的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查詢參數來請求返回特定的字段。如果未指定,只返回常用字段的一個子集。
接受的答案,如果你的作品,讓其他人面臨這個問題也可能會從中受益。
getCreatedDate()怎麼樣?注意我猜測我沒有android的力量。 file.get返回一個文件資源,你可能需要使用它https://developers.google.com/drive/v2/reference/files – DaImTo
沒有。這是行不通的。我正在使用api的V3版本。 –