0

Ich arbeite mit Android Quickstart für Google Drive Rest APi, das unter dem folgenden Link bereitgestellt wird. Android QuickstartGoogle Drive-REST-API: file.getCreatedTime() gibt immer null zurück

Der Beispielcode funktioniert einwandfrei. Wenn ich jedoch versuche, andere Details aus Dateien wie getCreatedTime() oder GetWevViewLink() zu erhalten, wird 'null' zurückgegeben. Nur getName() und getId() gibt Werte zurück.

+0

Was ist mit getCreatedDate()? Hinweis Ich vermute, ich habe nicht die Macht von Android. datei.get gibt eine Datei zurück, die Sie möglicherweise mit ihr spielen müssen https://developers.google.com/drive/v2/reference/files – DaImTo

+0

Nein. Das funktioniert nicht. Ich benutze V3 Version der API. –

Antwort

0

Ich denke, Sie müssen die Metadaten-Klasse verwenden, um die getCreatedDate wie in Working with File and Folder Metadata angezeigt zu verwenden.

Dann versuchen Sie so etwas wie:

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

Google Drive REST APIs v3 würde nur nur bestimmte Standardfelder zurück. Wenn Sie ein Feld benötigen, müssen Sie es explizit anfordern, indem Sie es mit der Methode .setFields() festlegen.

Ändern Sie den Code wie folgt aus -

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; 
} 

Sie mehr über dieses Verhalten hier lesen https://developers.google.com/drive/v3/web/migration

aus den obigen Link Zitiert -

Bemerkenswerte Veränderungen

  • Vollständige Ressourcen werden nicht mehr standardmäßig zurückgegeben. Verwenden Sie den Abfrageparameter für Felder, um bestimmte zurückzugebende Felder anzufordern. Wenn nicht angegeben, wird nur eine Teilmenge häufig verwendeter Felder zurückgegeben.

Akzeptieren Sie die Antwort, wenn es für Sie funktioniert so, dass andere diese Frage, die sich auch profitiert bekommen könnten.

Verwandte Themen