2013-05-10 2 views
2

Я пишу приложение для Android, которое отправляет сообщения пользователю. Я видел приложения, которые запускают список других установленных приложений, которые могут использоваться для отправки электронной почты, и мне интересно, как это сделать.Как получить список установленных программ электронной почты на android

Я просмотрел this код и this вопрос.

Как вы отфильтровываете из списка установленных приложений, чтобы узнать, какие из них используются для электронной почты?

ответ

1

Вы можете попробовать этот код из this answer:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
    emailIntent.setType("plain/text"); 
    startActivity(Intent.createChooser(emailIntent, "Send email...")); 
+0

Я могу запустить эту деятельность. Я просто ищу способ отфильтровать приложения, не связанные с электронной почтой, из списка приложений. –

3

Вы можете использовать аналогичный шаблон, аналогичный показанному в ответе во второй ссылке. Вам просто нужно изменить намерение:

final Intent sendIntent = new Intent(Intent.ACTION_SEND, null); 
final List<ResolveInfo> pkgAppsList 
    = context.getPackageManager().queryIntentActivities(sendIntent, 0); 
+0

Таким образом, цель отфильтровывает приложения, не по электронной почте? –

+1

@KristyWelsh - это вернет список информации о пакетах приложений, которые могут отправлять электронную почту (или, точнее, те приложения, которые утверждают, что могут обрабатывать намерение «ACTION_SEND», которое должно быть для электронной почты). Это просто способ попросить структуру сделать фильтрацию для вас и вернуть результаты. –

+1

Самое главное, что это вернет список 'Activity', который имеет' IntentFilter' на 'Intent.ACTION_SEND'. Однако, если вы просто вызываете 'startActivity' с этим' sendIntent', и существует более чем один 'Activity', который может обрабатывать' sendIntent, Android будет использовать выбранное пользователем приложение по умолчанию (для 'Intent.ACTION_SEND') ИЛИ представить их с возможностью выбора приложения для использования. Таким образом, вам действительно не нужен этот список (если вы не собираетесь вручную представлять список/нужно знать, есть ли хотя бы одно приложение электронной почты), так как Android позаботится о том, чтобы выбрать приложение для автоматического выбора. –