0

Я работаю с Android Quickstart для Google Drive Rest APi, предоставленным по ссылке ниже. Android QuickstartGoogle REST API: file.getCreatedTime() всегда возвращается null

Образец кода работает нормально как есть. Однако, когда я пытаюсь получить другие данные из таких файлов, как getCreatedTime() или GetWevViewLink(), возвращается «null». Только getName() и getId() возвращают значения.

+0

Что относительно getCreatedDate()? Примечание. Я предполагаю, что у меня нет возможности андроида. file.get возвращает ресурс файла, который вам может понадобиться, чтобы немного поиграть с ним https://developers.google.com/drive/v2/reference/files – DaImTo

+0

Нет. Это не работает. Я использую V3 версию api. –

ответ

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

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

Цитирование из приведенной выше ссылке -

Заметные изменения

  • Полные ресурсы больше не возвращаются по умолчанию. Используйте параметр запроса полей для запроса определенных полей, которые будут возвращены. Если не указано, возвращается только подмножество обычно используемых полей.

Принять ответ, если он работает для вас, чтобы другие облицовочные этот вопрос может также получить выгоду.

 Смежные вопросы

  • Нет связанных вопросов^_^