Google Drive Android API - 文件夹中的文件列表总是过时/缓存,而不是新鲜的

时间:2014-10-17 09:52:43

标签: android google-drive-android-api

我正在尝试列出我的google云端硬盘中的文件。我正在使用文档中的官方复制粘贴方法,但它不返回有效结果 - 它还列出了一些最近删除(删除)的文件,并且没有列出最近创建的一些文件。它看起来像是缓存的,需要相当长的时间(几分钟,有时甚至几小时)来反映任何变化。 任何人都知道如何获得实时且有效 - 不过时和缓存 - 来自Google云端硬盘的文件列表?我正在使用此方法:

    // 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

1 个答案:

答案 0 :(得分:1)

Google驱动器api在执行任何操作后都不会立即同步,因此您必须使用以下方法调用强制google驱动器进行同步:

Drive.DriveApi.requestSync(_gac);