Проверка имени версии внешнего приложения в android

Я хотел бы знать, как читать установленную версию apk. Например, из моего приложения я хотел бы узнать, какая версия Skype установлена ​​на моем телефоне.

Чтобы прочитать версию моего приложения, я использую:

PackageInfo pinfo = null;
pinfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String versionName = pinfo.versionName;

Конечно, с окружением try/catch.

Ответ 1

Вам необходимо выяснить, какое имя пакета Skype установлено на вашем устройстве.

PackageInfo pinfo = null;
pinfo = getPackageManager().getPackageInfo("com.skype.android", 0);

//getVersionCode is Deprecated, instead use getLongVersionCode().
long verCode = pinfo.getLongVersionCode();
//getVersionName is Deprecated, instead use versionName
String verName = pinfo.versionName;

Вы можете получить все пакеты и узнать имя с помощью следующего вызова метода:

List<PackageInfo> packages = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);

Ответ 2

Вы должны сделать это, используя что-то вроде этого:

List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);

PackageInfo mypackage = <get required app from the list>;

String versionName = mypackage.versionName;
int versionCode = mypackage.versionCode;

Посмотрите класс PackageInfo.

Ответ 3

Это сработало для меня:

PackageInfo pinfo = context.getPackageManager().getPackageInfo( "com.myapp", 0 );
String verName = pinfo.versionName;
int verCode = pinfo.versionCode;