【问题标题】:Google Drive android Completion listenerGoogle Drive android 完成监听器
【发布时间】:2018-08-15 17:16:32
【问题描述】:

我正在使用适用于 Android 的 Google Drive api。我可以使用 CreateFileActivityOptions Builder 上传文件。有没有办法在使用这个类的时候监听文件上传完成。

MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
     .setTitle(file.getName())
     .setMimeType("audio/mp3")
     .setStarred(false)
     .build();
CreateFileActivityOptions createOptions =
     new CreateFileActivityOptions.Builder()
                .setInitialDriveContents(contents)
                .setInitialMetadata(changeSet)
                .build();
return driveClient.newCreateFileActivityIntentSender(createOptions);

【问题讨论】:

    标签: google-drive-android-api


    【解决方案1】:

    尝试在他们的documentation 中使用此示例代码:

    Task<DriveContents> createContentsTask = getDriveResourceClient().createContents();
    createContentsTask
            .continueWithTask(task -> {
                DriveContents contents = task.getResult();
                OutputStream outputStream = contents.getOutputStream();
                try (Writer writer = new OutputStreamWriter(outputStream)) {
                    writer.write("Hello World!");
                }
    
                MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
                                                      .setTitle("New file")
                                                      .setMimeType("text/plain")
                                                      .setStarred(true)
                                                      .build();
    
                CreateFileActivityOptions createOptions =
                        new CreateFileActivityOptions.Builder()
                                .setInitialDriveContents(contents)
                                .setInitialMetadata(changeSet)
                                .build();
                return getDriveClient().newCreateFileActivityIntentSender(createOptions);
            })
            .addOnSuccessListener(this,
                    intentSender -> {
                        try {
                            startIntentSenderForResult(
                                    intentSender, REQUEST_CODE_CREATE_FILE, null, 0, 0, 0);
                        } catch (IntentSender.SendIntentException e) {
                            Log.e(TAG, "Unable to create file", e);
                            showMessage(getString(R.string.file_create_error));
                            finish();
                        }
                    })
            .addOnFailureListener(this, e -> {
                Log.e(TAG, "Unable to create file", e);
                showMessage(getString(R.string.file_create_error));
                finish();
            });
    

    那将是newCreateFileActivityIntentSender 最接近的onComplete(某种)监听器。

    【讨论】:

    • 我试过了。创建文件后触发写入。他们似乎没有办法验证上传是否成功。
    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2016-04-19
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多