Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Drive Android未返回文件的最新版本_Android_Google Drive Api_Google Drive Android Api - Fatal编程技术网

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

Google Drive Android未返回文件的最新版本,android,google-drive-api,google-drive-android-api,Android,Google Drive Api,Google Drive Android Api,我正在使用Drive Android API在设备之间同步文件,并在驱动器上保存最新版本。从很久以前开始,它就开始表现得很奇怪 为了查看文件是否存在并获取其最新版本,我按该文件名进行查询搜索,并按修改日期降序排序。它返回文件更新时的正确日期时间: final SortOrder sortOrder = new SortOrder.Builder() .addSortDescending(SortableField.MODIFIED_DATE)

我正在使用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);
我读到的驱动器内容如下:

                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);
你知道为什么会发生这种情况以及如何解决吗


我知道返回的版本很旧,因为如果我在设备上使用驱动器应用程序,它会返回同一文件的正确、最新版本。

您的查询是否返回修订列表?这当然包括旧版本。您是否尝试获取在响应的第一个索引中找到的索引?还可以尝试一下,这可能会有所帮助。@noogui metadataBuffer.getCount()返回1,我得到第一个。另外,我应该添加一个,以明确说明-对上次修改的查询正常,返回最新的。问题是如何使用“打开”方法而不是查询来获取文件的真实内容。预计将于2016年11月修复。@h22是的,谢谢,自从我发布问题以来,我一直在关注这个bug。