Google Drive Android未返回文件的最新版本

时间:2016-08-27 16:22:51

标签: android google-drive-api google-drive-android-api

我使用Drive Android API在设备之间同步文件并在云端硬盘上保留最新版本。从一段时间以来,它开始表现得非常奇怪。

要查看文件是否存在并获取最新版本,我会按该文件名进行查询搜索,并按修改日期降序排序。它在文件更新时返回正确的日期时间:

        final SortOrder sortOrder = new SortOrder.Builder()
                .addSortDescending(SortableField.MODIFIED_DATE)
                .build();
        final Query query = new Query.Builder()
                .addFilter(Filters.eq(SearchableField.TITLE, "fileName"))
                .addFilter(Filters.eq(SearchableField.TRASHED, false))
                .setSortOrder(sortOrder)
                .build();
        Drive.DriveApi.query(apiClient, query)
                .setResultCallback(lastModifiedCallback);

但是当我查询文件内容时,它会返回一些旧版本的内容。我无法理解是什么导致它。

我按如下方式阅读文件:

                driveId.asDriveFile()
                .open(apiClient, DriveFile.MODE_READ_ONLY, null)
                .setResultCallback(fileContentsCallback);

我读到的驱动器内容如下:

            final DriveContents driveContents = result.getDriveContents();
            final InputStream inputStream = driveContents.getInputStream();
            final File newFile = new File("fileName");
            final FileOutputStream dest = new FileOutputStream(newFile);
            ByteStreams.copy(inputStream, dest);
            driveContents.commit(apiClient, null);

任何想法为什么会发生以及如何解决?

我知道返回的版本是旧版本,因为如果我在设备上使用Drive应用程序,它会返回相同文件的正确最新版本。

0 个答案:

没有答案