Например, у HTC Evo 4G есть версия Android 2.3.5, ее версия программного обеспечения может быть 4.67.651.3 (для HTC Evo 4G)
как я должен программно получить это значение версии программного обеспечения?
Попробуй это:
String productVersion = "";
Process ifc = null;
try {
ifc = Runtime.getRuntime().exec("getprop ro.product.version");
BufferedReader bis = new BufferedReader(new InputStreamReader(ifc.getInputStream()), 2048);
productVersion = bis.readLine();
} catch (IOException e) {
} finally {
if (ifc != null) {
ifc.destroy();
}
}
Это даст вам значение, которое вы ищете. Это зависит от устройства. Возможно, вам придется посмотреть свойство "ro.build.description".
Отрывок из одного из моих приложений, чтобы отправить электронное письмо со всеми данными о приложении, которое мне нужно. Build.VERSION.SDK_INT - это версия ОС. Я использую ApplicationInfo и PackManager для получения некоторых пользовательских данных из манифеста, где храню метаданные, отличные от Android, о приложении.
ApplicationInfo ai = _context.getPackageManager().getApplicationInfo(_context.getPackageName(), PackageManager.GET_META_DATA);
PackageInfo manager= _context.getPackageManager().getPackageInfo(_context.getPackageName(), 0);
body.append("Application version " + manager.versionName + " - ");
body.append("Content version " + ai.metaData.get("ContentVersion") + "\n");
body.append("OS Version:" + Build.VERSION.SDK_INT + "\n");
body.append(Build.MANUFACTURER + " - ");
body.append(Build.MODEL + " - ");
body.append(Build.PRODUCT + "\n" + "\n" + "\n");