Domanda

Ho un app Android che vuole avviare una e-mail. Il seguente codice funziona in un'API di livello 5 emulatore, ma non su un emulatore di livello 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);
}

L'eccezione generata dice:

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

Posso inviare manualmente e-mail da tutti i dispositivi (emulate e reali) testati, e questo lavora a Livello 5 api. La documentazione su Intent.ACTION_SEND dice che è attiva dal livello di API 1.

È stato utile?

Soluzione

Credo che la differenza può essere non tanto nel API, ma nelle applicazioni disponibili sul sistema. L'applicazione e-mail, in particolare, era piuttosto limitata in Android 1.1 e 1.5, quindi non sarei sorpreso se non fosse in grado di gestire ACTION_SEND.

Potrebbe anche essere che la stessa azione funziona se è stata l'applicazione Gmail configurato, ma non solo con l'applicazione e-mail (come nell'emulatore).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top