Je suis frustré d'essayer d'obtenir des informations sur la progression de mon asynctask lors de l'insertion d'un message via Gmail Api pour Android.Vérifier la progression pour le téléchargement (Google GMail API pour Android)
J'essaye d'utiliser le MediaHttpUploaderProgressListener mais le problème est que je viens juste de sortir de la méthode getMediaHttpUploader() de l'insertion.
Je pense que je manque quelque chose de grand au milieu pour obtenir la réponse attendue de la getMediaHttpUploader ...
Ceci est mon code:
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");
}
}
}
Merci à tous! C'est ma première fois sur Stackoverflow!