2012-04-24 16 views
7

cada vez que crear una acción para el envío de un correo electrónico de mi aplicación, se le solicita a muchas opciones, incluyendo un cliente QR ...fuerza ACTION_SEND el envío de correo electrónico con

¿Hay una manera de forzar el envío a través de correo electrónico sólo a los clientes?

Código

para enviar el correo electrónico

String rec[] = { owner.email }; 
i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(android.content.Intent.EXTRA_EMAIL, rec); 
i.putExtra(android.content.Intent.EXTRA_SUBJECT, "RE: " + desc); 
i.putExtra(android.content.Intent.EXTRA_TEXT, 
     "\n\n\nSent from Mojo for Android"); 
startActivity(i); 

Captura de lo que sucede cuando inicio esta screenshot

+0

Lea esto http://stackoverflow.com/a/5802670/599993 – jzafrilla

Respuesta

24

Trate de SetType message/rfc822 en lugar de text/plain

+1

muestra bluetooth también con gmail ... ¿cómo evitar eso? – RAJESH

+2

¿Hay alguna manera de reducirlo para forzarlo a enviar con Gmail? –

+0

si tengo que usar setType para mi tipo de archivo adjunto (archivo)? +1 si necesito enviar solo texto –

4

creo que debe cambiar el setType a

i.setType("message/rfc822") ; 
+0

Sí, esto de manera predeterminada abrió Gmail en mi aplicación. ¡Gracias! –

+0

abre muchas más aplicaciones, que solo correo electrónico ..., ¿por qué no 'text/html'? –

4
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("text/html"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
new String[] { "[email protected]" }); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
        "Subject of the Mail"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
          "This is my sample Mail"); 
emailIntent.setType("vnd.android.cursor.dir/email"); 
startActivity(Intent.createChooser(emailIntent, "Email:")); 

bien utilizar este lo hará muestra sólo los clientes de correo,

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
emailIntent.setType("message/rfc822"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
new String[] { "[email protected]" }); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
        "Subject of the Mail"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
          "This is my sample Mail"); 
//emailIntent.setType("vnd.android.cursor.dir/email"); 
startActivity(Intent.createChooser(emailIntent, "Email:")); 
0

Mientras usted está utilizando ACTION_SEND con el tipo text/plain, mostrará todas las opciones válidas. Sin embargo, si lo desea, puede diseñar su propia ventana de diálogo que muestre solo Gmail u otro cliente de correo haciendo el filtrado mediante programación.

BTW, ¿por qué necesita esta ventana cuando solo quiere usar Gmail?

+0

si recuerdo correctamente no puede forzar a Gmail como cliente de correo electrónico predeterminado – thepoosh

+0

nop, le pido que muestre Gmail en su propia ventana de diálogo personalizada – waqaslam

+1

No me gustaría obligar a mis usuarios a usar un cliente de correo electrónico específico . no parece una buena idea – thepoosh

-1
String rec[] = { owner.email }; 
i = new Intent(Intent.ACTION_SEND); 
i.setType("message/rfc822") ; 
i.putExtra(android.content.Intent.EXTRA_EMAIL, rec); 
i.putExtra(android.content.Intent.EXTRA_SUBJECT, "RE: " + desc); 
i.putExtra(android.content.Intent.EXTRA_TEXT, 
     "\n\n\nSent from Mojo for Android"); 
startActivity(i); 

probar esto; :::

0
Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("mailto:?to=email&subject=hello&body=hello%20world")); 
startActivity(Intent.createChooser(intent, "Send via...")); 

puede probar esta :::::

0
Intent.setType("plain/text"); 

Al principio, cuando vi este Inmediatamente pesar de que era un error y estaba destinado a ser text/plain, pero esta es la forma correcta de mostrar solo clientes de correo electrónico en la lista de aplicaciones.

Pruébalo y compruébalo por ti mismo.

-1

Configurando Intent.setType en: Intent.setType ("plain/text") es exactamente cómo forzar android.content.Intent.ACTION_SEND para que aparezca el cliente de correo electrónico. Una solución perfecta y simple. ¡Gracias!

+0

esto no es solo spam, sino incorrecto. como puedes ver en mi pregunta – thepoosh

Cuestiones relacionadas