驱动AppFolder备份丢失

时间:2017-02-28 20:11:54

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

我正在使用标准API(不是REST API),当我备份文件然后恢复时,它可以工作....当我重新安装应用程序时会出现问题。重新安装后,应用程序看不到AppFolder中的文件,但存在

Query query = new Query.Builder().addFilter(Filters.eq(SearchableField.TITLE, Tags.DB_DATA)).addFilter(Filters.eq(SearchableField.TRASHED, false)).build();
        Drive.DriveApi.query(GAPI, query).setResultCallback(new ResultCallback<DriveApi.MetadataBufferResult>() {
            @Override
            public void onResult(@NonNull DriveApi.MetadataBufferResult result) {
                loadBackups(result.getMetadataBuffer());
                result.release();
            }
        });

这是到目前为止的代码(在loadBackups里面我用HashMap创建带有详细信息的ArrayList,没有什么特别之处),但是我尝试过listChildren和queryChildren,但同样......

在某些时候,可以看出,但是当它发生时我没有抓到,但我确信在重新安装后,它无法看到

2 个答案:

答案 0 :(得分:0)

没有足够的评论来评论。但是,我怀疑您遇到的问题是,按照设计,用户从云端硬盘中删除应用文件夹的应用的最后一次安装。

因此,您的解决方案需要备份到不属于应用程序的地方。

我在多次安装时遇到了进一步的问题,如果您在第二台设备上安装该应用,则需要一段时间&#34; (不确定多长时间)Drive将app文件夹传播到云端硬盘。我已经使用它在设备之间同步数据,但是当同步可能正常运行时,它就在驱动器的手中。

答案 1 :(得分:0)

尝试将这些代码放在连接方法上,

try {
                        Drive.DriveApi.requestSync(mGoogleApiClient)
                                .setResultCallback(syncCallBack);
                    } catch (IllegalStateException ex) {

                    }

然后

private ResultCallback<Status> syncCallBack = new ResultCallback<Status>() {
    @Override
    public void onResult(@NonNull Status status) {
        if (!status.isSuccess()) {
            if (DriveStatusCodes.DRIVE_RATE_LIMIT_EXCEEDED == status.getStatusCode()) {
            }
        }
        Query query = new Query.Builder()
                .addFilter(Filters.contains(SearchableField.TITLE, "abc.txt"))
                .build();
        Drive.DriveApi.query(mGoogleApiClient, query)
                .setResultCallback(metadataCallback);
    }
};