0

我在谷歌驱动器中创建了一个文档。我想使用 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 中的内容看起来像已损坏在此处输入图像描述

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

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

4

2 回答 2

0

您不能将这些修订版用于谷歌文档等原生格式。那些有自己的api来修改它们。例如,电子表格有电子表格提要 API。

于 2013-09-27T00:44:43.250 回答
0

您可以使用更新请求中的转换参数为 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
}
于 2013-09-29T20:44:33.160 回答