如何过滤(共享)电子邮件意图的特定应用程序?

时间:2011-10-04 11:39:18

标签: android

我在我的应用程序中使用Action Send和createChooser API通过各种电子邮件应用程序共享一些文本消息。但我不想要我在我的设备中安装的所有应用程序。我希望特别是facebook,Gmail和Twitter在那个选择器List.How像这样过滤?谢谢

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 个答案:

答案 0 :(得分:3)

如果你知道,你想要哪些应用,你可以在对话框中创建自己的选择器,并根据用户的选择激发特定的意图。

您可以通过调用PackageManager的queryIntentActivities:

来检查可用的应用程序
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
List pkgAppsList = context.getPackageManager().queryIntentActivities( sendIntent, 0);

然后你选择你需要的那些并弹出对话框。