获取应用程序信息使用其包名称

时间:2013-09-20 03:50:32

标签: java android google-maps android-package-managers android-applicationinfo

我正在开发一个Android应用程序,我正在尝试检查设备中是否已经安装了应用程序。我使用下面的代码获取应用程序信息。例如,要检查是否安装了谷歌地图,我使用其包名称,如下所示。

        ApplicationInfo info1 = getPackageManager().
        getApplicationInfo("com.google.android.apps.maps", 0 );

我的问题是,如果将来谷歌改变这个包名,我将不得不更新包名,然后向用户发送更新...除了从包名检查 - 还有其他方法了解是否安装了应用程序?

请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:0)

这是我用来获取应用名称,标签,图标和包名称的代码

Intent intent = new Intent("android.intent.action.MAIN");
            intent.addCategory("android.intent.category.LAUNCHER");
            PackageManager manager = getPackageManager();
            List<ResolveInfo> resolveinfo_list = manager.queryIntentActivities(intent, 0);

            for(ResolveInfo info:resolveinfo_list){

                    //launchComponent(info.activityInfo.packageName, info.activityInfo.name);
                    String lActTitle = (String) info.loadLabel(manager);
                    Drawable d = info.activityInfo.loadIcon(manager);


                    System.out.println("info.activityInfo.packageName>>>>>>>>>>>>>>>" + info.activityInfo.packageName);
                    System.out.println("info.activityInfo.name>>>>>>>>>>>>>>>" + info.activityInfo.name);
                    System.out.println("info.activityInfo.name>>>>>>>>>>>>>>>" + info.activityInfo.name);

                   // RowItem item = new RowItem(d,info.activityInfo.packageName,lActTitle,info.activityInfo.name);
                   //rowItems.add(item);

            }

使用此功能,我们可以获取用户安装和使用的所有应用