Android - 如何按包名获取任何应用程序版本

时间:2018-06-11 10:19:04

标签: java android

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

如何在Android Studio中执行此操作?

在亚行,我可以通过以下方式转储它:

adb shell dumpsys package com.samsung.android.calendar | grep versionName

但如何在代码中执行此操作?

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

1 个答案:

答案 0 :(得分:0)

Prolem解决了,因为缺乏上下文,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();
    }