有人可以向我展示如何将文件从Android手机发送到Google云端硬盘的简短示例吗?
或创建包含内容的新文件并发送到云端硬盘。
www网站上的Google示例代码有错误,或来自新API,但使用旧API的示例应用程序..
Google示例:
File fileMetadata = new File();
fileMetadata.setTitle("photo.jpg");
java.io.File filePath = new java.io.File("files/photo.jpg");
FileContent mediaContent = new FileContent("image/jpeg", filePath);
File file = driveService.files().insert(fileMetadata, mediaContent)
.setFields("id")
.execute();
但是setTitle()和insert()等方法不存在?
我的代码:
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
mService = new com.google.api.services.drive.Drive.Builder(
transport, jsonFactory, credential)
.setApplicationName("Drive API Android Quickstart")
.build();
mService.files().create(new File().setName("TITLE").setMimeType("text/csv")).execute();
此创建文件名称为TITLE且正确的MimeType。
但是如何发送普通的java.io.File或如何为drive.model.File创建内容?
答案 0 :(得分:1)
您的代码段已关闭,但它与Google's example之间存在一些差异:
File fileMetadata = new File();
fileMetadata.setName("config.json");
fileMetadata.setParents(Collections.singletonList("appDataFolder"));
java.io.File filePath = new java.io.File("files/config.json");
FileContent mediaContent = new FileContent("application/json", filePath);
File file = driveService.files().create(fileMetadata, mediaContent)
.setFields("id")
.execute();
setName
代替setTitle
appDataFolder
driveService.files().create
代替driveService.files().insert
答案 1 :(得分:0)
在您的设备上安装Google云端硬盘应用。我想你已经拥有了。
之后使用Intent.ACTION_OPEN_DOCUMENT让用户从驱动器中选择一个文件然后可以读写。
或者使用Intent.ACTION_CREATE_DOCUMENT让用户在您可以将文件复制到的驱动器上创建文件名。
答案 2 :(得分:0)
您需要添加
implementation 'com.google.apis:google-api-services-drive:v3-rev20191108-1.30.3'
在您的Gradle中。然后在您的课程中
import com.google.api.services.drive.model.File;