我如何在motoblur和touchwiz上查找系统应用程序的软件包名称和主要活动名称?我正在制作一个应用程序,但我希望它是通用的,而不仅仅是Sense和stock android。我实际上并不拥有一部运行touchwiz或motoblur的手机,所以我很难知道如何找到它们。感谢
答案 0 :(得分:1)
请注意,您不应该通过包/类名称启动活动 - 系统应用程序因设备而异,活动类名称可能随应用更新而变化(我注意到谷歌地图只执行了一次)。
另一个原因是用户可能更喜欢使用他们安装的其他应用来执行特定任务(例如,我更喜欢使用第三方应用拍摄照片)。
您应该通过系统定义的意图调用应用程序。
答案 1 :(得分:0)
您需要在手机上收集有关已安装应用的信息,而不是通过list
并搜索所需的活动
PackageManager packmngr = this.getPackageManager();
Intent ints = new Intent(Intent.ACTION_MAIN, null)
ints.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> list = packmngr.queryIntentActivities(ints, PackageManager.PERMISSION_GRANTED);
ints.addCategory(Intent.CATEGORY_LAUNCHER);
&lt; ---在这里,您可以指定Intent
(清单中定义的其他应用程序的开发人员)使用查询进行搜索的类型,它可以通过{{ 1}}或CATEGORY_LAUNCHER
,实际上主要活动属于CATEGORY_DEFAULT
类型。
列表中的简单迭代:
CATEGORY_LAUNCHER
点击此处查看有关常量和方法的更多信息: http://developer.android.com/reference/android/content/pm/PackageManager.html