Android: différence entre le niveau ACTION_SEND api 2 et 5?
-
20-09-2019 - |
Question
J'ai une application Android qui veut lancer un e-mail. Le code suivant fonctionne dans un émulateur niveau de l'API 5, mais pas sur un émulateur de niveau 2 ou dispositif:
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);
}
L'exception levée dit:
No Activity found to handle Intent { action=android.intent.action.SEND (has extras) }
Je peux envoyer manuellement par courrier électronique à partir de tous les appareils (émulés et réels) testés, et cela fonctionne au niveau 5 api. La documentation sur Intent.ACTION_SEND dit qu'il est actif depuis le niveau de l'API 1.
La solution
Je pense que la différence peut être pas tant dans l'API, mais dans les applications disponibles sur le système. L'application e-mail en particulier a été très limitée dans Android 1.1 et 1.5, donc je ne serais pas surpris si elle n'a pas été en mesure de gérer ACTION_SEND.
Peut-être aussi que la même action fonctionne si vous avez l'application Gmail configuré, mais pas avec l'application e-mail uniquement (comme dans l'émulateur).