Pergunta

Eu tenho um aplicativo Android que deseja iniciar um email. O código a seguir funciona em um emulador de nível 5 da API, mas não em um emulador ou dispositivo de nível 2:

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);
}

A exceção jogada diz:

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

Posso enviar manualmente email de todos os dispositivos (emulados e reais) testados, e isso funciona na API de nível 5. A documentação sobre Intent.action_send diz que está ativa desde o nível 1 da API.

Foi útil?

Solução

Eu acho que a diferença pode não estar tanto na API, mas nos aplicativos disponíveis no sistema. O aplicativo de email em particular era bastante limitado no Android 1.1 e 1.5, por isso não ficaria surpreso se não fosse capaz de lidar com o Action_send.

Pode ser que a mesma ação funcione se você tiver o aplicativo Gmail configurado, mas não apenas com o aplicativo de email (como no emulador).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top