Android:重新安装应用后找不到App文件夹中的上传文件

时间:2016-04-24 14:00:02

标签: android google-drive-api

我已在我的应用中实施了Google云端硬盘备份。

我在App Folder上传了备份。但是在我重新安装我的应用程序后,它无法找到新创建的文件。

我有解决方法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

卸载应用程序也会删除App Folder中的数据。 This is from the REST API documentation,但我猜测Android和其他客户端API也会发生同样的事情。

答案 1 :(得分:1)

我做了以下事情:

  1. 我使用requestSync(GoogleApiClient)
  2. 然后,在其回调中,我使用Drive.DriveApi.query(GoogleApiClient, query)
  3. 查询驱动器的内容
  4. 然后,在其回调中,如果找到,则检索文件。
  5. 工作完成!
  6. 下面给出了感兴趣的片段。

    @Override
    public void onConnected(Bundle connectionHint) {
        super.onConnected(connectionHint);
        Drive.DriveApi.requestSync(getGoogleApiClient()).setResultCallback(syncCallback);
    }
    
    final private ResultCallback<Status> syncCallback = new ResultCallback<Status>() {
        @Override
        public void onResult(@NonNull Status status) {
            if (!status.isSuccess()) {
                showMessage("Problem while retrieving results");
                return;
            }
            query = new Query.Builder()
                    .addFilter(Filters.and(Filters.eq(SearchableField.TITLE, "title"),
                            Filters.eq(SearchableField.TRASHED, false)))
                    .build();
            Drive.DriveApi.query(getGoogleApiClient(), query)
                    .setResultCallback(metadataCallback);
        }
    };
    
    final private ResultCallback<DriveApi.MetadataBufferResult> metadataCallback =
            new ResultCallback<DriveApi.MetadataBufferResult>() {
        @SuppressLint("SetTextI18n")
        @Override
        public void onResult(@NonNull DriveApi.MetadataBufferResult result) {
            if (!result.getStatus().isSuccess()) {
                showMessage("Problem while retrieving results");
                return;
            }
    
            MetadataBuffer mdb = result.getMetadataBuffer();
            for (Metadata md : mdb) {
                Date createdDate = md.getCreatedDate();
                DriveId driveId = md.getDriveId();
            }
    
            readFromDrive(driveId);
        }
    };
    

    感谢您的帮助!