0

我正在使用Android Quickstart獲取Google Drive Rest APi,該鏈接在以下鏈接提供。 Android QuickstartGoogle Drive REST API:file.getCreatedTime()返回始終爲空

示例代碼正常工作。但是,當我嘗試從getCreatedTime()GetWevViewLink()等文件中獲取其他詳細信息時,將返回'null'。只有getName()和getId()纔會返回值。

+0

getCreatedDate()怎麼樣?注意我猜測我沒有android的力量。 file.get返回一個文件資源,你可能需要使用它https://developers.google.com/drive/v2/reference/files – DaImTo

+0

沒有。這是行不通的。我正在使用api的V3版本。 –

回答

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()); 

     } 
    } 
1

谷歌驅動器的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查詢參數來請求返回特定的字段。如果未指定,只返回常用字段的一個子集。

接受的答案,如果你的作品,讓其他人面臨這個問題也可能會從中受益。