1

AndroidアプリでGoogleドライブのネイティブドキュメントを編集するには、ファイルを.docx形式にダウンロード(変換)し、MS Word docxファイルを編集できるエディターでファイルを編集してから、ファイルをにアップロードし直します。そのネイティブのGoogleドキュメント形式。私は次のコードを使用しています:

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();

コードはエラーなしで実行されますが、ファイルの内容には、間違った形式または間違ったファイルタイプがアップロードされたときに通常表示されるすべての奇妙な文字が含まれています。

だから私の質問は、このプロセスを使用して既存のファイルを更新することが可能かどうかです。または、変換プロセスはINSERTされたファイルでのみサポートされていますか?上記のコードに何か問題がありますか?

4

1 に答える 1

1

私は自分が逃したものを理解しました。問題を解決するには、上記のコードに次の行を追加します。

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