Как фильтровать конкретные приложения для (совместного использования) электронной почты?

#android

#Android

Вопрос:

Я использую API Action Send и createChooser в своем приложении для обмена текстовыми сообщениями через различные приложения электронной почты.Но мне не нужны все приложения, которые я установил на своем устройстве.Я хочу, чтобы именно facebook, Gmail и Twitter были в списке выбора.Как фильтровать таким образом?Спасибо

 String TEXT = "I shared the file "   " via MyApp";
    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.setType("text/plain");
    sendIntent.putExtra(Intent.EXTRA_TEXT, TEXT);
    startActivity(Intent.createChooser(sendIntent, "Share the program:"));
  

Это код, который я использую.

Ответ №1:

Если вы знаете, какие приложения вы хотите, вы можете создать свой собственный выбор в диалоговом окне и запустить конкретное намерение в соответствии с выбором пользователя.

Вы можете проверить доступные приложения, вызвав PackageManager queryIntentActivities:

 Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
List pkgAppsList = context.getPackageManager().queryIntentActivities( sendIntent, 0);
  

А затем вы выбираете те, которые вам нужны, и открываете диалоговое окно.

Комментарии:

1. Спасибо, Андрас. Есть ли какой-либо способ фильтрации в API createChooser (). потому что мне нужен экран общего доступа по умолчанию.

2. Кроме того, есть ли способ фильтровать по типу приложения (текст, электронная почта и т. Д.)?