【发布时间】:2019-05-27 07:02:40
【问题描述】:
我处于初学者水平,无法使用具有不同参数和返回类型的方法。
我创建了一种将文件上传到 Google Drive(通过 Drive REST API)的方法和另一种搜索 Google Drive 文件夹的方法。问题是搜索文件夹方法的返回类型是Task ,我希望找到的文件夹作为参数发送到上传文件方法,只是参数类型是com.google.api。 services.drive.model.File 和 AbstractInputStreamContent。
我应该如何将 Task 对象“转换”为 File?
以下是搜索文件夹和上传文件的方法:
public Task<GoogleDriveFileHolder> searchFolder(String folderName) {
return Tasks.call(mExecutor, () -> {
// Retrive the metadata as a File object.
FileList result = mDriveService.files().list()
.setQ("mimeType = '" + "application/vnd.google-apps.folder" + "' and name = '" + folderName + "' ")
.setSpaces("drive")
.execute();
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
if (result.getFiles().size() > 0) {
googleDriveFileHolder.setId(result.getFiles().get(0).getId());
googleDriveFileHolder.setName(result.getFiles().get(0).getName());
}
return googleDriveFileHolder;
});
}
public Task<GoogleDriveFileHolder> uploadFile(File googleDiveFile, AbstractInputStreamContent content) {
return Tasks.call(mExecutor, () -> {
// Retrieve the metadata as a File object.
File fileMeta = mDriveService.files().create(googleDiveFile, content).execute();
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
googleDriveFileHolder.setId(fileMeta.getId());
googleDriveFileHolder.setName(fileMeta.getName());
return googleDriveFileHolder;
});
}
【问题讨论】:
-
上传文件后你想得到什么?是fileId?
标签: java google-drive-android-api