启动任何已安装的应用程序

tre*_*oft 2 android android-intent android-package-managers

我有一个应用程序,用户可以在其中滚动浏览所有已安装应用程序的列表,他可以选择任何应用程序并启动它。

对于大多数应用程序,这适用于:

startActivity(getPackageManager().getLaunchIntentForPackage(packageName_selectedapp));
Run Code Online (Sandbox Code Playgroud)

其中 packageName_selectedapp 是列表中所选应用程序的字符串。

但是对于某些应用程序,函数 getLaunchIntentForPackage(packageName_selectedapp) 返回“null”,例如,如果它是拨号程序或联系人活动。

如何获得拨号器和联系人的launchIntent?

提前谢谢!

Com*_*are 5

如何获得拨号器和联系人的launchIntent?

那些不是应用程序。这些是另一个应用程序的其他可启动活动。

因此,你需要决定你正在写什么。

您说您有“所有已安装应用程序的列表,他可以选择任何应用程序并启动它”。在这种情况下,您特别不想要“拨号器和联系人”,因为它们不是应用程序。

相反,如果您想显示用户可以从中选择的所有可启动活动的列表,则不会使用getLaunchIntentForPackage(). 相反,您将使用queryIntentActivities()来查找那些可启动的活动。我有一个示例应用程序,以启动器的形式演示了这一点