Обновите существующий собственный документ Google Диска из документа MS Word через API Google Диска.

Чтобы отредактировать собственный документ 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-файлов? Что-то не так с кодом выше?


person elprl    schedule 20.01.2013    source источник


Ответы (1)


Я понял, что я упустил. Добавьте следующую строку в приведенный выше код, чтобы устранить проблему:

liveFileInfo.setMimeType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
person elprl    schedule 21.01.2013
comment
Спасибо, что поделились своим ответом, это мне очень помогло - person Bryan; 14.04.2014