2012-02-27 10 views
24

Tengo una situación extraña aquí.Android Correo electrónico Problema de varios archivos adjuntos en HTC Thunderbolt

Estoy tratando de enviar correos electrónicos con varios archivos adjuntos utilizando el siguiente fragmento de código.

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
// emailIntent.setType("plain/text"); 
emailIntent.setType("application/octet-stream"); 
... 
.... 
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 

Esto funciona bien y el mecanismo de la intención implícita muestra una gran cantidad de opciones, como Gmail, Skype, mensajería, etc.

El problema es que el cliente de correo predeterminado no aparece en HTC Thunderbolt (pero funciona en otros dispositivos, incluido HTC Incredible S).

Si intento enviar un solo archivo adjunto usando Intent.ACTION_SEND, el cliente de correo predeterminado aparece. He intentado configurar el tipo de contenido a text/plain, appliation/octet-stream, message/rfc282 etc. pero ninguno funciona.

¿Qué me falta aquí?

+0

Al final llevé todos los archivos adjuntos a un archivo zip y cargué ese archivo zip. –

+0

¿Has probado esto? http://stackoverflow.com/questions/4552831/how-to-attach-multiple-files-to-email-client-in-android – juanlugm

Respuesta

0

Suena como un error en la versión del Sentido de Thunderbolt. Interfaces de usuario personalizadas para la victoria, ¿estoy en lo cierto?

De todos modos, buscaría qué aplicación realmente maneja los correos electrónicos en el rayo y pondré una declaración if para detectar si el dispositivo es un rayo. Si lo es, configure la clase de destino del Intento como lo que sea. Si no es así, haz lo que ya estás haciendo.

0

Esto funciona muy bien para mí, asegúrese de especificar el tipo de mensaje, así es como el sistema operativo Android sabe qué difusión usar.

 String email = "[email protected]"; 
    Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
    intent.setType("message/rfc822"); 
    intent.putExtra(Intent.EXTRA_EMAIL, new String[] {email}); // could have multiple address 
    intent.putExtra(Intent.EXTRA_SUBJECT, "Enter your subject here"); 
    intent.putExtra(Intent.EXTRA_TEXT, "message text as needed"); 
    ArrayList<Uri> arrayUri = new ArrayList<Uri>(); 
    arrayUri.add(Uri.parse("file://" + paths[0])); 
    arrayUri.add(Uri.parse("file://" + paths[1])); 
    intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, arrayUri); 
    startActivity(Intent.createChooser(intent, "Any title to show on chooser")); 
0

Pruebe esto. Creo que funcionará.

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
emailIntent.setType("plain/text"); 

ArrayList<Uri> uris = new ArrayList<Uri>(); 

String[] filePaths = new String[] {image1 Path,image2 path}; 
for (String file : filePaths) { 
    File fileIn = new File(file); 
    Uri u = Uri.fromFile(fileIn); 
    uris.add(u); 
} 

if (!(app_preferences.getString("email", "") == null || app_preferences.getString("email", "").equals(""))) { 
    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {app_preferences.getString("email", "")});  
} 

emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject name"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, "Please find the attachment."); 
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 

startActivity(Intent.createChooser(emailIntent, "Email:")); 
Cuestiones relacionadas