谷歌驱动器Android API - 文件夹中的文件列表总是过时/缓存,不是新鲜

问题描述:

我想列出我的谷歌驱动器中的文件。我正在使用官方复制粘贴方法从文档,但它不会返回有效的结果 - 它也列出了一些最近删除(垃圾)的文件,并没有列出一些最近创建的文件。它看起来像被缓存,并且需要相当长的时间(分钟,有时甚至几小时)来反映任何更改。 任何人都知道如何获得实时和有效 - 没有过时和缓存 - 从谷歌驱动器文件列表?我使用这种方法:谷歌驱动器Android API - 文件夹中的文件列表总是过时/缓存,不是新鲜

// 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 2015-01-09 14:19:03

+0

是的 - 我用旧的api。新的不是实时的 - 检查我的答案在这个主题:http://stackoverflow.com/a/26524098/1360930 – qkx 2015-01-27 11:06:23

谷歌驱动API不会让你有强迫谷歌驱动器使用下面的方法调用同步立即采取任何行动后同步:

Drive.DriveApi.requestSync(_gac); 
+1

它会很容易,如果它的工作。但事实并非如此。 – seanpj 2015-02-18 16:09:31

+0

我认为你使用的是Google Drive核心API。相反,核心API使用Google Drive REST API calls.Core API需要一些时间才能在Google Drive服务器上提交更改,以便您可以获得空文件夹ID。 – 2015-06-01 18:41:52

+0

感谢它与8.4.0版本。 – Pedram 2016-01-19 21:34:19