1

要在我的 Android 应用程序上编辑 Google Drive 原生文档,我将文件下载为 .docx 格式(转换),在能够编辑 MS Word docx 文件的编辑器中编辑文件,然后将文件上传回它的原生谷歌文档格式。我正在使用以下代码:

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 文件支持转换过程?上面的代码有什么问题吗?

4

1 回答 1

1

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

liveFileInfo.setMimeType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
于 2013-01-21T11:20:17.103 回答