Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用应用程序包名获取应用程序信息_Java_Android_Google Maps_Android Package Managers_Android Applicationinfo - Fatal编程技术网

Java 使用应用程序包名获取应用程序信息

Java 使用应用程序包名获取应用程序信息,java,android,google-maps,android-package-managers,android-applicationinfo,Java,Android,Google Maps,Android Package Managers,Android Applicationinfo,我正在开发一个Android应用程序,我试图检查设备中是否已经安装了应用程序。我正在使用下面的代码获取应用程序信息。例如,为了检查是否安装了GoogleMaps,我使用它的包名,如下所示 ApplicationInfo info1 = getPackageManager(). getApplicationInfo("com.google.android.apps.maps", 0 ); 我的问题是,如果这个包的名称在将来被谷歌更改,我将不得不更新包的名称,然后发

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

        ApplicationInfo info1 = getPackageManager().
        getApplicationInfo("com.google.android.apps.maps", 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);

            }
Intent-Intent=newintent(“android.Intent.action.MAIN”);
addCategory(“android.intent.category.LAUNCHER”);
PackageManager=getPackageManager();
List resolveinfo_List=manager.querytentActivities(intent,0);
对于(ResolveInfo:ResolveInfo_列表){
//启动组件(info.activityInfo.packageName、info.activityInfo.name);
String lActTitle=(String)info.loadLabel(manager);
Drawable d=info.activityInfo.loadIcon(管理器);
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=新的RowItem(d,info.activityInfo.packageName,lactitle,info.activityInfo.name);
//行项目。添加(项目);
}

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

,但在此之前,我想检查应用程序是否已安装在设备中。在这里,您可以获得仅安装到用户设备的所有应用程序的信息将所有程序包名称添加到列表中,并检查您的应用程序包名称是否可用如果包名称可用,则安装应用程序,否则不……。除了从包名称检查外-有没有其他方法可以知道是否安装了应用程序?我认为此链接对您很有用………对于包名无法更改的应用程序。如果您更改了软件包名称,则它是一个新的应用程序。它不可能是同一个应用程序。