从我的Android应用程序上传新文档到Google驱动器

时间:2012-10-09 20:42:13

标签: android google-drive-api

我正在尝试使用Google Drive SDK从我的Android应用程序在Google云端硬盘上创建新文档。我的身份验证工作正常,我已设法使用以下代码创建一个简单的文本文件:

// com.google.api.services.drive.model.File
File newFile = new File();
newFile.setTitle("Test");
newFile.setMimeType("text/plain");
String contentStr = "This is a test file";      

try {
    File insertedFile = drive.files().insert(
         newFile, ByteArrayContent.fromString("text/plain", contentStr)).execute();
} catch (IOException e) {
    e.printStackTrace();
}

如果我改变" text / plain"到" application / vnd.google-apps.document"并在没有任何内容的情况下插入文件,并在我的Google云端硬盘上创建新文档:

// com.google.api.services.drive.model.File
File newFile = new File();
newFile.setTitle("Test");
newFile.setMimeType("application/vnd.google-apps.document");   

try {
    File insertedFile = drive.files().insert(newFile).execute();
} catch (IOException e) {
     e.printStackTrace();
}

但是我想上传一个包含内容的新文档,但是使用与纯文本文件相同的方法:

// com.google.api.services.drive.model.File
File newFile = new File();
newFile.setTitle("Test");

String fileType = "application/vnd.google-apps.document";
newFile.setMimeType(fileType);   

try {
    File insertedFile = drive.files().insert(
              newFile, ByteArrayContent.fromString(fileType, contentStr)).execute();
} catch (IOException e) {
    e.printStackTrace();
}

我收到此错误:

 com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
 {
     "code" : 400,
     "errors" : [ {
          "domain" : "global",
          "message" : "Bad Request",
          "reason" : "badRequest"
     } ],
     "message" : "Bad Request"
 }

并且没有创建文件。请有人帮帮我吗?

1 个答案:

答案 0 :(得分:1)

mime类型必须是源文档的mime类型,例如text / plan或text / HTML。如果您使用convert = true上传,则云端硬盘上的结果文件将具有mime类型的application / vnd.google-apps.document。