我将如何获取可以在 android 上成为 Home 的应用程序的包名称

Posted

技术标签:

【中文标题】我将如何获取可以在 android 上成为 Home 的应用程序的包名称【英文标题】:How would I go about getting the package names of the applications that can be Home on android 【发布时间】:2011-03-10 08:03:28 【问题描述】:

我的活动被用户设置为默认主页,但我也希望能够从我的活动中启动默认主页。我已经尝试对以下内容进行硬编码:

意图意图=新意图(意图.ACTION_MAIN); 意图.addCategory(意图.CATEGORY_HOME); 包管理器 pm = getPackageManager(); String packageName = "com.android.launcher"; String className = "com.android.launcher.Launcher"; final ComponentName cn = new ComponentName(packageName, >className); 意图.setComponent(cn);

这似乎适用于我的机器人,但强制关闭 HTC Ally。我认为有一种更简单的方法来获取具有 Home 和 Default 类别的应用程序列表。

对于使用过 Home Swittcher 应用程序的用户。我基本上想在手机上生成已安装的默认 Home 活动列表。

【问题讨论】:

【参考方案1】:

第 1 步:创建一个 Intent,它会启动用户对默认 HOME 应用程序的所有内容。换句话说,不要尝试输入ComponentName

第 2 步:在 PackageManager 上致电 queryIntentActivities(),了解谁可以回复 Intent

步骤#3:如果列表中只有两个条目,找出哪个是你的,另一个是平台的。如果列表中有 3 个以上的条目,请删除您的条目并让用户在其余选项中进行选择。

如果愿意,您可以使用 queryIntentActivityOptions() 将 #2 和 #3 组合起来,将其设置为从列表中过滤掉您自己的 Intent。

【讨论】:

以上是关于我将如何获取可以在 android 上成为 Home 的应用程序的包名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在android上使用ffmpeg录制视频?

如何在 Android 应用程序中获取 ISO 国家代码?

在 iOS 中,如何根据环境(dev、hom、prod)更改启动屏幕图像?

我如何在这个数组中获取数据,如果条件使它成为python中距离最小的集群?

Android如何获取到连接的WIFI无线路由器的所有客户端的MAC地址?

如何从可绘制文件夹上的图像获取路径并设置为图像视图,位图?