更新google驱动器本机文档的新修订版

时间:2013-09-26 19:36:14

标签: google-drive-api

我在google drive中创建了一个文档。我想使用google drive android sdk上传同一文档的新版本。我试过像

这样的代码
try{
                                                                            // First retrieve the file from the API.
  File file = service.files().get(fileId).execute();

java.io.File fileContent = new java.io.File("sdcard0/temp/test.doc");
FileContent mediaContent = new FileContent("application/vnd.google-apps.document", fileContent);

File updatedFile = service.files().update(getID(), file, mediaContent).execute();                                   
} catch (IOException e1) {
       Log.d("","An error occurred: " + e1); //No i18n
} catch (Exception e){
       Log.d("","EXCEPTION IN SAVING"+e); //No i18n
}

但docs.google.com中的内容似乎已损坏,如enter image description here

如果我做错了,请指导我。

注意:相同的代码适用于上传的文档。

2 个答案:

答案 0 :(得分:0)

您不能将这些修订用于google docs等原生格式。那些有自己的api来修改它们。例如,电子表格包含电子表格Feed api。

答案 1 :(得分:0)

您可以使用update request中的convert参数为Google文档/电子表格格式创建新修订。

修改代码以在上传时启用转换(未经测试但确信它是正确的)

try{
    // First retrieve the file from the API.
    File file = service.files().get(fileId).execute();

    java.io.File fileContent = new java.io.File("sdcard0/temp/test.doc");
    FileContent mediaContent = new FileContent("application/msword", fileContent); //Changed the mime type to original

    File updatedFile = service.files().update(getID(), file, mediaContent)
                        .setConvert(true) //Convert the file while uploading
                        .execute();                                   
} catch (IOException e1) {
       Log.d("","An error occurred: " + e1); //No i18n
} catch (Exception e){
       Log.d("","EXCEPTION IN SAVING"+e); //No i18n
}