在我的应用程序中,我想显示该特定 Android 手机上每个可用启动器(用于主屏幕)的列表。是否可以从 Android 操作系统获取某种信息以及如何拨打电话?
谢谢!
亲切的问候丹尼尔
在我的应用程序中,我想显示该特定 Android 手机上每个可用启动器(用于主屏幕)的列表。是否可以从 Android 操作系统获取某种信息以及如何拨打电话?
谢谢!
亲切的问候丹尼尔
您可以查询与特定 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);
}
上面的代码片段不能正常工作,因为启动器列表的结果还包括系统设置的应用程序,其包名为 com.android.settings。这个意外结果发生在我的 Pixel 2 (Android 8.0) 和 Nexus 6 (Android 7.1) 上。
尝试以下操作:
获取已安装应用程序列表:
列出 pkgList = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);
遍历此列表并使用以下方法获取启动器活动:
getPackageManager().getLaunchIntentForPackage(packageName);
有关详细信息,请在此处阅读:PackageManager。希望这可以帮助。