android - intents - ACTION_SENDTO para enviar un correo electrónico
intent send android (3)
Estoy experimentando la condición de error "Esta acción no es compatible actualmente" cuando se ejecuta el siguiente fragmento de código en Android 2.1. ¿Qué hay de malo con el fragmento?
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
Uri uri = Uri.parse("mailto:[email protected]");
intent.setData(uri);
intent.putExtra("subject", "my subject");
intent.putExtra("body", "my message");
startActivity(intent);
}
De hecho, encontré una forma en que funcionan los EXTRA. Esta es una combinación de una respuesta que encontré aquí con respecto a ACTION_SENDTO
http://www.coderanch.com/t/520651/Android/Mobile/no-application-perform-action-when
y algo para HTML que encontré aquí:
Cómo enviar un correo electrónico HTML (pero la variante de cómo usar ACTION_SENDTO en esta publicación HTML no funcionó para mí, recibí la "acción no compatible" que está viendo)
// works with blank mailId - user will have to fill in To: field
String mailId="";
// or can work with pre-filled-in To: field
// String mailId="[email protected]";
Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
Uri.fromParts("mailto",mailId, null));
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here");
// you can use simple text like this
// emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here");
// or get fancy with HTML like this
emailIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
.append("<p><b>Some Content</b></p>")
.append("<a>http://www.google.com</a>")
.append("<small><p>More content</p></small>")
.toString())
);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
Puedes probar este
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
"mailto", emailID, null));
emailIntent.putExtra(Intent.EXTRA_SUBJECT,
Subject);
emailIntent.putExtra(Intent.EXTRA_TEXT,
Text);
startActivity(Intent.createChooser(emailIntent, Choosertitle);
Esto funciona para mi
Si usa ACTION_SENDTO
, putExtra()
no funciona para agregar el asunto y el texto a la intención. Use setData()
y la herramienta Uri
agregue tema y texto.
Este ejemplo funciona para mí:
// ACTION_SENDTO filters for email apps (discard bluetooth and others)
String uriText =
"mailto:[email protected]" +
"?subject=" + Uri.encode("some subject text here") +
"&body=" + Uri.encode("some text here");
Uri uri = Uri.parse(uriText);
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(uri);
startActivity(Intent.createChooser(sendIntent, "Send email"));