进度监听器:
private class FileUploadProgressListener implements MediaHttpUploaderProgressListener { private String mFileUploadedName; public FileUploadProgressListener(String fileName) { mFileUploadedName = fileName; } @Override public void progressChanged(MediaHttpUploader mediaHttpUploader) throws IOException { if (mediaHttpUploader == null) return; switch (mediaHttpUploader.getUploadState()) { case INITIATION_STARTED: //System.out.println("Initiation has started!"); break; case INITIATION_COMPLETE: //System.out.println("Initiation is complete!"); break; case MEDIA_IN_PROGRESS: double percent = mediaHttpUploader.getProgress() * 100; if (Ln.DEBUG) { Log.d(Ln.TAG, "Upload to Dropbox: " + mFileUploadedName + " - " + String.valueOf(percent) + "%"); } notif.setProgress(percent, mFileUploadedName).fire(); break; case MEDIA_COMPLETE: //System.out.println("Upload is complete!"); } }}此处的更多信息:https : //pre.google.com/p/google-api-java-
client/wiki/MediaUpload
直接媒体上传将 在一个请求中 上传整个媒体内容 , 而不是可以在多个请求中上传的可恢复媒体上传协议。
直接上载减少了HTTP请求的数量,但 增加 了大型媒体上载 失败的更改 (例如,连接失败)。
由于库的体系结构,您必须在块和进度之间进行选择,或者在没有进度的情况下进行选择。最小的块大小应该可以改善情况。较小的块:
setChunkSize(MediaHttpUploader.MINIMUM_CHUNK_SIZE)
希望能帮助到你!



