我正在使用适用于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);
答案 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
(某种)侦听器。