2014-10-17 4 views
2

Я пытаюсь перечислить файлы с моего диска Google. Я использую официальный экземпляр вложенного метода из документов, но он не возвращает достоверных результатов - он также содержит некоторые недавно удаленные (поврежденные) файлы и не перечисляет некоторые недавно созданные файлы. Похоже, что он кэшируется, и требуется немало времени (минуты, иногда даже часы), чтобы отразить любые изменения. Кто-нибудь знает, как получить реальный и действительный - не устаревший и кешированный список файлов с Google Drive? Я использую этот метод:API Google Диска Android - список файлов из папки ВСЕГДА устаревший/кэшированный, а не свежий

// I need to get list of NOT TRASHED files from root directory 
    Query query = new Query.Builder().addFilter(Filters.eq(SearchableField.TRASHED, false).build(); 
    DriveFolder folder = Drive.DriveApi.getRootFolder(mGoogleApiClient); 

    MetadataBufferResult filesMetadata = folder.queryChildren(mGoogleApiClient, query).await(); 

    if (!filesMetadata.getStatus().isSuccess()) { 
     log("failed"); 
     return false; 
    } 

    Iterator<Metadata> it = filesMetadata.getMetadataBuffer().iterator(); 

    while (it.hasNext()) { 
     Metadata meta = it.next(); 
     log("File name: " + meta.getTitle() + ", size: " + meta.getFileSize() + ", created: " + meta.getCreatedDate()); 
    } 

    // but this list is outdated, doesn't reflect latest changes 
+0

ли вы когда-нибудь найти решение для этого? – Alchete

+0

Да - я использовал и старый api. Новый не в реальном времени - проверьте мой ответ в этой теме: http://stackoverflow.com/a/26524098/1360930 – qkx

ответ

1

Google диск апи не синхронизируется сразу после любых действий, так что вы должны заставить Google диск для синхронизации с помощью метода следующего вызова:

Drive.DriveApi.requestSync(_gac); 
+1

Было бы очень легко, если бы это сработало. но это не так. – seanpj

+0

Я думаю, что вы используете API-интерфейс Google Диска. вместо этого основной API использует API-интерфейсы REST API Google Диска. API-интерфейс пакета занимает некоторое время, чтобы зафиксировать изменения на сервере Google Диска, чтобы получить нулевой идентификатор папки. –

+0

Спасибо, что работает с версией 8.4.0. – Pedram