Pregunta

Tengo una aplicación para Android que quiere iniciar un correo electrónico. El código siguiente funciona en un nivel de API 5 emulador, pero no en un emulador de nivel 2 o dispositivo:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Email from MyApp");
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
   "This email was autogenerated by MyApp.");
try {
    startActivity(emailIntent);
} catch (Exception e) {
    Log.e(TAG,e.getMessage());
    showDialog(DIALOG_CANTSENDMAIL);
}

La excepción que se dice:

No Activity found to handle Intent { action=android.intent.action.SEND (has extras) }

puedo enviar manualmente correo electrónico de todos los dispositivos emulados (y reales) probados, y esto funciona en el nivel 5 de la API. La documentación sobre Intent.ACTION_SEND dice que ha estado activo desde el nivel 1 de la API.

¿Fue útil?

Solución

Creo que la diferencia puede ser no tanto en la API pero en las aplicaciones disponibles en el sistema. La aplicación de correo electrónico en particular fue bastante limitado en Android 1.1 y 1.5, así que no se sorprendería si no fuera capaz de manejar ACTION_SEND.

También podría ser que la misma acción funciona si ha configurado la aplicación de Gmail, pero no sólo con la aplicación de correo electrónico (como en el emulador).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top