Я боролся с получением versionName для запущенного приложения от Типа объекта PackageInfo.
Я создал Интерфейс Parcelable со всеми полями, связанными с Типом объекта PackageInfo. Основной вход для того метода интерфейса является объектом Пакета.
Я, может казаться, не выясняю, как правильно связать эти Parcelable, Пакет и объекты PackageInfo.
Есть ли какой-либо пример кода там, что я могу посмотреть на? Не кажется, что это должно быть настолько трудно, но это, кажется, озадачивает меня.
Спасибо джаз
PackageInfo
имя_версии
является публичным элементом данных. Вам не нужно делать ничего особенного, чтобы получить «имя версии для запущенного приложения из типа объекта PackageInfo». Если у вас есть объект PackageInfo
с именем info
, вы получаете доступ к versionName
через info.versionName
.
Я использую следующий код для получения версии, используемой в манифесте. Я написал небольшую функцию, чтобы инкапсулировать и скрыть этот несколько большой кусок, необходимый для простого получения int.
private int getVersion() {
int version = -1;
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
version = pInfo.versionCode;
} catch (NameNotFoundException e1) {
Log.e(this.getClass().getSimpleName(), "Name not found", e1);
}
return version;
}
Это вернет int, выбранный для идентификации вашей версии на рынке (VersionCode). Не VersionName. Чтобы посмотреть, как изменить код для этого, взгляните на код из Casebash.
Пример кода:
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
return packageInfo.versionName;
} catch (NameNotFoundException e) {
//Handle exception
}