2011-11-23 108 views
6

我想创建一个在Android主屏幕上看到的应用程序列表。如何获取在Android主屏幕上看到的应用程序的名称?

目前我使用下面的代码:

List<ApplicationInfo> packs = pm.getInstalledApplications(0); 

但这返回所有安装的应用程序,但我只需要具有主屏幕上的图标的应用程序。

这怎么办?

任何帮助表示赞赏。

+1

您是否打算容纳非标准启动器的用户?小心Sense和TouchWiz在很多手机上都是标准配置。 – Emyr

+0

“主屏幕”不是Android中的标准概念。正如@Emyr所说,很多人都在使用不同的发射器替代品,所以他们的主屏幕与“股票”不一样。每个启动器都有自己的方式来存储主屏幕上显示的内容。 – Guillaume

回答

0

现在您已经获得了设备上安装的软件包列表,请遍历它们并在每个项目上调用getLaunchIntentForPackage()

如果返回了有效的意图,它就存在于启动器上,否则如果返回null,则包不会从启动器屏幕启动。请注意,主屏幕快捷键是启动器应用程序的一个子集。

+0

谢谢。我也这样做了。但是它在一些软件包上给出了一个系统例外。这怎么解决? – Sandeep

+1

Document说它将返回可用于启动主要活动的Intent。所以通常所有的应用程序都有1个启动器。所以我不认为这会工作........你有没有试过这个? –

+0

@Shail它返回'CATEGORY_LAUNCHER'的意图。如果有任何活动属于''它们将在启动器上可见。 ' – Reno

相关问题