Android 용 Gmail API를 통해 메일을 삽입하는 동안 내 asynctask의 진행 상황에 대한 정보를 얻으려고 애쓰는 중입니다.업로드 진행 확인 (Android 용 Google GMail API)
MediaHttpUploaderProgressListener를 사용하려고하는데 문제는 삽입의 getMediaHttpUploader() 메소드에서 null이 발생한다는 것입니다.
private class TareaGestionEnvioMails extends AsyncTask<Void, Void, Message> {
@Override
protected Message doInBackground(Void... params) {
try {
if (mensaje != null) {
String user = "me";
Gmail.Users.Messages.Insert insert = servicioGmail.users().messages().insert(user, mensaje);
MediaHttpUploader uploader = insert.getMediaHttpUploader();
//getMediaHttpUploader returns me null value :(
uploader.setDirectUploadEnabled(false);
uploader.setChunkSize(1024*256);
uploader.setProgressListener(new FileUploadProgressListener());
mensaje = insert.execute();
}
return mensaje;
} catch (Exception e) {
mLastError = e;
cancel(true);
return null;
}
}
...
private class FileUploadProgressListener implements MediaHttpUploaderProgressListener {
public FileUploadProgressListener() {
}
@Override
public void progressChanged(MediaHttpUploader mediaHttpUploader) throws IOException {
if (mediaHttpUploader == null) return;
switch (mediaHttpUploader.getUploadState()) {
case INITIATION_STARTED:
pantallaPrincipal.onProgresoEnviarMail(0.0, "INITIATION_STARTED");
break;
case INITIATION_COMPLETE:
pantallaPrincipal.onProgresoEnviarMail(0.0, "INITIATION_COMPLETE");
break;
case MEDIA_IN_PROGRESS:
double percent = mediaHttpUploader.getProgress() * 100;
pantallaPrincipal.onProgresoEnviarMail(percent, "MEDIA_IN_PROGRESS");
break;
case MEDIA_COMPLETE:
pantallaPrincipal.onProgresoEnviarMail(100.0, "MEDIA_COMPLETE");
}
}
}
모두 감사합니다 :
나는
이 내 코드는 ... 내가 getMediaHttpUploader 중 예상되는 응답을 얻을 중간에 큰 뭔가를 놓친 것 같아! 이것은 Stackoverflow에 게시 한 첫 번째 시간입니다!