如何选择任何应用程序与Andoid中的应用程序选择器一起启动?

时间:2017-05-29 23:01:07

标签: android android-intent android-intent-chooser

以下代码基本上是从Android document复制的:

Intent intent = new Intent(Intent.ACTION_SEND);
// Create intent to show chooser
Intent chooser = Intent.createChooser(intent, "Choose an app");
// Verify the intent will resolve to at least one activity
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(chooser);
}

不幸的是,app选择器没有显示出来。任何人都可以指出上述代码有什么问题吗?

我想使用选择器允许用户选择应用,并让应用程序记住此应用,稍后在代码中的其他活动中启动它,

1 个答案:

答案 0 :(得分:2)

您的Intent与设备上的任何应用都不匹配。我的猜测是它缺少MIME类型。在setType()上调用intent,传入您尝试共享的内容的MIME类型。

更大的问题是,您实际上并未分享任何内容(不是EXTRA_TEXT,也不是EXTRA_STREAM),因此您可能会因为Intent响应任何活动而崩溃。

更新:根据您更新的问题,您似乎正在选择"选择"从字面上看。 :-)当选择器允许用户从几种可能的匹配活动中选择一种时,选择器然后启动所选择的活动。在较新版本的Android(5.1 +,IIRC)上,有一些方法可以让您了解选择器选择的内容。但是,如果你的目标是来开始一项活动,而只是让用户选择一个...... AFAIK,你需要根据PackageManager和{来自己推出自己的用户界面。 {1}}。这基本上是主屏幕的作用:查找实施queryIntentActivities() / ACTION_MAIN的所有活动,然后显示它们供用户选择。我的Launchalot sample app演示了此过程。