Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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 Android-如何通过包名获取任何应用程序版本_Java_Android - Fatal编程技术网

Java Android-如何通过包名获取任何应用程序版本

Java Android-如何通过包名获取任何应用程序版本,java,android,Java,Android,我想在我自己的android应用程序中做一些事情,在此之前我需要检查一些系统应用程序的版本。(系统和第三方应用程序) 如何在Android Studio中实现这一点 在ADB中,我可以通过以下方式转储它: adb shell dumpsys package com.samsung.android.calendar | grep versionName 但是如何在代码中实现呢 注意:这不是重复的问题,评论中提供的任何解决方案都不适合我。我想检查任何应用程序版本,而不是我的应用程序问题已解决,ge

我想在我自己的android应用程序中做一些事情,在此之前我需要检查一些系统应用程序的版本。(系统和第三方应用程序)

如何在Android Studio中实现这一点

在ADB中,我可以通过以下方式转储它:

adb shell dumpsys package com.samsung.android.calendar | grep versionName
但是如何在代码中实现呢


注意:这不是重复的问题,评论中提供的任何解决方案都不适合我。我想检查任何应用程序版本,而不是我的应用程序

问题已解决,getPackageManager因缺少上下文而无法工作:

try {
        Context context = InstrumentationRegistry.getContext();
        PackageManager pm = context.getPackageManager();
        PackageInfo pInfo = pm.getPackageInfo("com.google.android.apps.photos", 0);
        String version = pInfo.versionName;
        Log.d(TAG, "checkVersion.DEBUG: App version: "+version);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }

提示:PackageManager是否可能重复要搜索的内容?已经回答了。一个答案解释了如何获取另一个应用程序的版本。您遇到了什么错误?我们可以使用此shell dumpsys包packgeNamecan获取versionName和versionCode您可以编辑您的问题。将来你们可以起来投票