0

我正在开发一个自定义启动器应用程序。我想获取诸如“我的设备上安装了多少个摄像头、消息或浏览器应用程序”之类的信息,可以是默认应用程序还是第三方应用程序?如果对此有任何想法,请建议我。

提前致谢

4

2 回答 2

3

您可以使用PackageManager来了解已安装的应用程序。但是,您没有可靠的方法来确定其中哪些是“相机”或“消息”或“浏览器”。

于 2012-05-09T11:28:04.227 回答
0

要获得所需的信息,您需要使用PackageManagerclass 以及它提供的任何其他内容。例如,以下代码检索可用“应用程序”列表,即在各自的 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"));
}
于 2012-05-09T11:29:14.727 回答