我正在使用标准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,但同样......
在某些时候,可以看出,但是当它发生时我没有抓到,但我确信在重新安装后,它无法看到
答案 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);
}
};