He estado trabajando en un programa de Android para enviar correos electrónicos con un archivo adjunto (archivo de imagen, archivo de audio, etc.) usando Intent con ACTION_SEND
. El programa funciona cuando el correo electrónico tiene un solo archivo adjunto. Solía Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)
adjuntar el archivo de imagen designado al correo y está funcionando bien, el correo se puede entregar a través de Gmail. Sin embargo, cuando intenté adjuntar varias imágenes al mismo correo llamando Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)
varias veces, no funcionó. Ninguno de los archivos adjuntos aparece en el correo electrónico.
Busqué en la documentación del SDK y en el grupo de usuarios de programación de Android sobre archivos adjuntos de correo electrónico, pero no puedo encontrar ninguna información relacionada. Sin embargo, descubrí que hay otra constante de intención ACTION_SEND_MULTIPLE
(disponible desde el nivel 4 de API) que podría cumplir con mi requisito. Basado en la documentación del SDK, simplemente indica que entrega múltiples datos a otra persona, funciona como ACTION_SEND
, excepto que los datos son múltiples. Pero todavía no pude averiguar el uso correcto de este comando. Traté de declarar la intención con ACTION_SEND_MULTIPLE
, luego llamé putExtra(EXTRA_STREAM, uri)
varias veces para adjuntar varias imágenes, pero obtuve el mismo resultado erróneo como antes, ninguno de los archivos adjuntos aparece en el correo electrónico.
¿Alguien lo ha probado ACTION_SEND_MULTIPLE
y lo ha hecho funcionar con varios archivos adjuntos de correo electrónico?
fuente
Respuestas:
Aquí está el código que necesita para crear un emailIntent que contenga múltiples archivos adjuntos.
fuente
emailIntent.setType("text/plain");
. Si usa "sin formato / texto", Android forzará a usar GMail como remitente, pero si usa "texto / sin formato", proporcionará un diálogo de selección de aplicaciones con Gmail, Facebook, Bluetooth, etc. Si desea proponer solo programas de correo utilice "texto / xml" en su lugar.context.startActivity(emailIntent);
la casilla de verificación "Usar de forma predeterminada para esta acción" aparecerá en el cuadro de diálogo del selector de aplicaciones, por lo que el usuario podrá seleccionar la aplicación predeterminada para enviar los correos electrónicos con varios archivos adjuntos.ACTION_SEND_MULTIPLE
debería ser la accióny entonces
emailIntent.setType("text/plain");
seguido por:
Esto funciona para mi.
fuente
Aunque este es un hilo antiguo, pero como se muestra en la parte superior de las búsquedas de Google, quiero agregar una pequeña pista para completarlo, por lo que me tropecé con él.
Es necesario hacer que los archivos adjuntos sean legibles para la actividad de correo, de lo contrario no se adjuntarán. Entonces tienes que llamar a alguna parte
fuente
Aquí encontré un gran ejemplo http://www.blackmoonit.com/2010/02/filebrowser-send-receive-intents/
debes usar
fuente
Para múltiples archivos adjuntos, use
PutParcelableArrayListExtra(Intent.ExtraStream, uris)
donde la variable uris esList<IParcelable>().
un ejemplo:Espero que esto ayude ;)
fuente