Android: ¿Cómo adjunto una imagen temporal generada a un correo electrónico?

Tengo una imagen generada mediante programación que quiero enviar como archivo adjunto a través deACTION_SEND yEXTRA_STREAM método.

¿Pero cómo hago esto?

Mi primer intento (escribiendo a micontext.getCacheDir() parece que funciona en la vista previa de Gmail (sin vista previa de la imagen, pero el nombre del archivo adjunto y el ícono estaban visibles), pero el archivo adjunto nunca llegó del lado del destinatario. Supongo que esto tiene algo que ver con los permisos en el archivo generado, pero ¿cómo evitar esto? ¿Necesito establecer configuraciones más permisivas en estos archivos generados (para que la actividad de Gmail pueda acceder)? ¿Es eso posible para la carpeta de caché de la aplicación?

¿Hay otra ubicación de archivo que sería más adecuada para escribir mis archivos? Consideré la carpeta de descargas, pero creo que sería una ubicación incómoda para algo que solo necesita existir hasta que se haya enviado por correo electrónico.

Incluso he intentado codificar mi imagen simplemente en undata:image/png;base64,ABCD... estilo URI. Esto también apareció en la vista previa de Gmail (icono de archivo adjunto, pero sin nombre de archivo), pero no resultó en un archivo adjunto del lado del destinatario.

¿Alguien ha podido adjuntar una imagen generada de una sola vez a una intención de correo electrónico de alguna manera? ¿Qué opciones puedo haber pasado por alto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta