获取 Android 中每个启动器的列表

发布于 2024-11-10 07:55:27 字数 117 浏览 3 评论 0原文

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

谢谢!

亲切的问候 丹尼尔

In my application I want to show a list of every available launcher (for homescreen) on that specific Android phone. Is it possible to get some kind of information from Android OS and how do I make this call?

Thanks!

Kind regards
Daniel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

滴情不沾 2024-11-17 07:55:27

您可以查询与特定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);
}

You can query the list of ResolverInfo that match with a specific Intent. The next snippet of code print all installed launchers.

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);
}
爱冒险 2024-11-17 07:55:27

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

The code snippet above does NOT work accurately, as the result of launchers' list also includes system's setting's app whose package name is com.android.settings. This unexpected result happens on both my Pixel 2 (Android 8.0 ) and Nexus 6 (Android 7.1).

静若繁花 2024-11-17 07:55:27

请尝试以下操作:

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

    List pkgList = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

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

    getPackageManager().getLaunchIntentForPackage(packageName);

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

Try the following:

  1. Obtain the list of installed applications:

    List pkgList = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

  2. Iterate over this list and obtain launcher activity using:

    getPackageManager().getLaunchIntentForPackage(packageName);

For details read here: PackageManager. Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文