Google云端硬盘Android完成侦听器

时间:2018-08-15 17:16:32

标签: google-drive-android-api

我正在使用适用于Android的Google云端硬盘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);

1 个答案:

答案 0 :(得分:0)

尝试在其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();
        });

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