Creo que los problemas reales aquí son que se está ejecutando en el emulador oficial y su intención no coincide con nada.
De mi prueba, este es un problema que ocurre cuando el URI del intento (desde setData()
) no coincide con nada y se está ejecutando en uno de los emuladores oficiales de Android. Esto no parece ocurrir en dispositivos reales, por lo que no debería ser un problema del mundo real.
Puede utilizar este código para detectar el momento en que esto va a suceder antes de que inicie la intención:
ComponentName emailApp = intent.resolveActivity(getPackageManager());
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback");
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction);
(. El nombre de la actividad que muestra el método de acción "acción no compatible" es com.android.fallback.FallbackActivity
)
Gracias, eso funcionó :) Al principio intenté algo así, pero simplemente detuve alguna pantalla de mensajes y no la aplicación de correo electrónico. Creo que fue porque, en ese momento, ¿no tenía una cuenta de correo electrónico configurada en el emulador? – scuba
¿Qué utilizó la palabra clave final? ¿Eso resulta en algún tipo de optimización que desconozco? – Scott
No escribí el fragmento. Personalmente, probablemente no habría usado la palabra clave final allí. – CommonsWare