Ponowne przesyłanie za pomocą interfejsu API dysku dla systemu Android

Chcę przesłać duże pliki (> 10 MB) na Dysk Google, używając api dysku. Działa dobrze z mniejszymi plikami (gdy jest dobre wifi), używając bezpośredniego przesyłania:

Drive.Files.Insert insert = driveService.files().insert(fileMetadata, mediaContent);
MediaHttpUploader uploader = insert.getMediaHttpUploader();
uploader.setChunkSize(UPLOAD_CHUNK_SIZE);
uploader.setDirectUploadEnabled(true);
insert.execute();

Załóżmy teraz, że przesyłamy większy plik. Chcemy śledzić połączenie, więc używamy opcji wznawiania przesyłania, podanej przez metodę MediaHttpUploader ...

uploader.setDirectUploadEnabled(false);
uploader.setProgressListener(new MediaHttpUploaderProgressListener() {
    @Override
    public void progressChanged(MediaHttpUploader mediaHttpUploader) throws IOException {
        switch (mediaHttpUploader.getUploadState()) {
            case INITIATION_STARTED:     break;
            case INITIATION_COMPLETE:  break;
            case MEDIA_IN_PROGRESS:   break;
            case MEDIA_COMPLETE:        break;
        }
    }
});

Dobrze. Ale nie ma stanuMEDIA_FAILED, mam rację? A co mogę zrobić, gdy przesyłanie nie dotrzeMEDIA_COMPLETE?

Nie znalazłem też metody wznowienia przesyłania. Więc nawet jeśli wysyłanie 100 MB jest w 90% i kończy się niepowodzeniem, wszystko, co mogę zrobić, to uruchomić wszystko od nowa?

PS: ten problem został zgłoszony wcześniej bez powodzeniaSprawdź postępy w przesyłaniu i pobieraniu (Google Drive API dla Androida lub Java) Przesyłanie wznawiane przez Google Google Drive bardzo często się nie udaje

questionAnswers(0)

yourAnswerToTheQuestion