0

我可以使用以下代码创建选择器:

Intent share = new Intent(Intent.ACTION_SEND);
                share.setType("text/plain");
                share.putExtra(Intent.EXTRA_TEXT, "hello");
                startActivity(Intent.createChooser(share, "my title"));

我想发送(假设)这个“你好”,但我想指定应该出现在以这个呼叫开头的活动中startActivity(Intent.createChooser(share, "my title"));,它显示了我手机中安装的所有应用程序。我不能把它限制在几个应用程序上吗?

4

1 回答 1

1

当您这样做时,所有可以接收您的意图的应用程序都会显示给用户,因此他可以选择他喜欢的应用程序来执行指定的操作。不,您不能将其仅限于少数应用程序。

但是,如果您知道它的活动名称,则可以直接调用某个应用程序。在这种情况下,忽略选择器并创建您自己的对话框,其中包含您想要的应用程序名称的列表视图。当用户选择其中之一时,然后仅向该特定应用程序触发意图。

确保您首先检查用户是否拥有该应用程序。您可以通过在包管理器中查询所有接收特定类型广播(例如:文本广播)的广播接收器来做到这一点。您可以使用以下方法执行此操作:

public abstract List queryBroadcastReceivers (Intent intent, int flags)

开发人员文档在这里: https ://developer.android.com/reference/android/content/pm/PackageManager.html#queryBroadcastReceivers%28android.content.Intent,%20int%29

于 2012-10-03T10:18:56.180 回答