Android自定义启动器应用程序

时间:2012-05-09 11:23:17

标签: android launcher

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

提前致谢

2 个答案:

答案 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"));
}