我正在开发自定义启动器应用程序。我想获取“我的设备上安装了多少个摄像头,消息或浏览器应用程序”等信息,这些信息可以是默认应用程序还是第三方应用程序?如果对此有任何想法,请建议我。
提前致谢
答案 0 :(得分:3)
您可以使用PackageManager
了解已安装的应用程序。但是,您没有可靠的方法来确定哪些是“相机”或“消息”或“浏览器”。
答案 1 :(得分:0)
要获取您所需的信息,您需要使用PackageManager
课程及其提供的任何其他内容。例如,以下代码检索可用“应用程序”列表,即在各自的AndroidManifest文件中使用Launch Intent定义的活动 - 以及包含它们的.app文件,启动器标签和图标等。
PackageManager pm = getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
String _label, _class, _src;
Drawable _icon;
for (ResolveInfo rInfo : pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED)) {
if (pm.getLaunchIntentForPackage(rInfo.activityInfo.packageName) == null) {
continue;
}
_class = rInfo.activityInfo.packageName;
_label = rInfo.activityInfo.loadLabel(pm).toString();
_src = rInfo.activityInfo.applicationInfo.sourceDir;
_icon = rInfo.activityInfo.loadIcon(pm);
Log.d("PackageList", "label: " + _label + ", package: " + _class + ", sourceDir: " + _src + ", icon: " + (_icon == null ? "blank" : "present"));
}