通过Google Drive API从MS Word doc更新现有的本机Google云端硬盘文档

时间:2013-01-20 20:56:04

标签: android google-drive-api

要在我的Android应用上编辑Google云端硬盘原生文档,我将文件下载为.docx格式(转换),在能够编辑MS Word docx文件的编辑器中编辑文件,然后我上传归档为其原生Google doc格式。 我正在使用以下代码:

File liveFileInfo = sService.files().get(mItem.getFileId()).execute();
mInputStream = new FileInputStream(pFile); //pFile is the java.io.File of the source XXX.docx file
InputStreamContent mediaContent = new InputStreamContent("application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
                new BufferedInputStream(mInputStream));
mediaContent.setLength(pFile.length());

Drive.Files.Update update = sService.files().update(mItem.getFileId(), liveFileInfo, mediaContent);
update.setConvert(true);
MediaHttpUploader uploader = update.getMediaHttpUploader();
int chunkSize = getChunkSize(mItem);
uploader.setChunkSize(chunkSize);
uploader.setProgressListener(new MediaHttpUploaderProgressListener() {

            @Override
            public void progressChanged(MediaHttpUploader uploader)
                    throws IOException {
                // update UI
            }
        });
File uploadedFile = update.execute();

代码运行没有错误,但文件内容包含上传错误格式或文件类型不正确时通常会看到的所有奇怪字符。

所以我的问题是,是否可以使用此过程更新现有文件?或者只有INSERTed文件支持转换过程?上面的代码有什么问题吗?

1 个答案:

答案 0 :(得分:1)

我弄明白我错过了什么。将以下行添加到上面的代码中以解决问题:

liveFileInfo.setMimeType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");