Вопрос

У меня есть приложение для Android, которое хочет инициировать отправку электронного письма.Следующий код работает в эмуляторе api уровня 5, но не на эмуляторе или устройстве уровня 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);
}

Выданное исключение гласит:

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

Я могу вручную отправлять электронную почту со всех протестированных устройств (эмулированных и реальных), и это работает в API уровня 5.Документация по Intent.ACTION_SEND говорит, что он активен с уровня API 1.

Это было полезно?

Решение

Я думаю, что разница может быть не столько в API, сколько в приложениях, доступных в системе.Приложение электронной почты, в частности, было довольно ограничено в Android 1.1 и 1.5, поэтому я бы не удивился, если бы оно не смогло обработать ACTION_SEND.

Также может случиться так, что то же действие сработает, если у вас настроено приложение Gmail, но не только с приложением электронной почты (как в эмуляторе).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top