Проверка имени версии внешнего приложения в 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;