9

在我的应用程序中,我想显示该特定 Android 手机上每个可用启动器(用于主屏幕)的列表。是否可以从 Android 操作系统获取某种信息以及如何拨打电话?

谢谢!

亲切的问候丹尼尔

4

3 回答 3

20

您可以查询与特定 Intent 匹配的 ResolverInfo 列表。下一段代码打印所有已安装的启动器。

PackageManager pm = getPackageManager();
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
for (ResolveInfo resolveInfo : lst) {
    Log.d("Test", "New Launcher Found: " + resolveInfo.activityInfo.packageName);
}
于 2012-01-04T11:06:26.793 回答
2

上面的代码片段不能正常工作,因为启动器列表的结果还包括系统设置的应用程序,其包名为 com.android.settings。这个意外结果发生在我的 Pixel 2 (Android 8.0) 和 Nexus 6 (Android 7.1) 上。

于 2018-10-24T01:32:08.753 回答
1

尝试以下操作:

  1. 获取已安装应用程序列表:

    列出 pkgList = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

  2. 遍历此列表并使用以下方法获取启动器活动:

    getPackageManager().getLaunchIntentForPackage(packageName);

有关详细信息,请在此处阅读:PackageManager。希望这可以帮助。

于 2011-05-30T13:03:19.183 回答