2009-12-18 3 views
1

J'ai une application Android qui veut lancer un email. Le code suivant fonctionne dans un émulateur niveau api 5, mais pas sur un émulateur de niveau 2 ou dispositif:Android: différence dans ACTION_SEND entre api niveau 2 et 5?

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 jeté 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é et réel) testé, et cela fonctionne dans le niveau 5 api. La documentation sur Intent.ACTION_SEND indique qu'il est actif depuis le niveau 1 de l'API.

+1

Veuillez noter qu'il n'y a pas d'appareils «niveau 2 API» utilisés (0,3% selon http://developer.android.com/resources/dashboard/platform-versions.html). – CommonsWare

Répondre

2

Je pense que la différence peut être moins dans l'API que dans les applications disponibles sur le système. L'application de messagerie en particulier était assez limitée dans Android 1.1 et 1.5, donc je ne serais pas surpris s'il n'était pas capable de gérer ACTION_SEND.

Il se peut également que la même action fonctionne si l'application Gmail est configurée, mais pas uniquement avec l'application Email (comme dans l'émulateur).

Questions connexes