Чтобы отредактировать собственный документ Google Диска в своем приложении для Android, я загружаю файл в формат .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-файлов? Что-то не так с кодом выше?