2012-02-17 99 views
3

我正在使用以下代码来共享来自我的应用程序的信息。筛选ACTION_SEND共享选项

Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "share Content"); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "share subject"); 
sendIntent.setType("text/plain"); 
startActivity(Intent.createChooser(sendIntent, "Share Place via")); 

上面的代码显示了一些选项,通过它我可以分享,我想实现某种方式经过选择和省略其中的一些。

例如,在我的情况下,如果Facebook应用程序存在于设备上,上面的代码将其显示为其中一个选项。由于我已经在我的应用程序中集成了Facebook android sdk。我想从共享选项中删除Facebook选项。

回答

2

我想你应该看看PackageManagerqueryIntentActivities (Intent intent, int flags)方法。这会给你一个与你的Intent匹配的Activities的列表,然后你可以删除其中的一些,并向用户展示一个自定义Dialog,在那里你只显示所需的Activities。在用户选择Activity之后,您必须明确地启动该Activity