1

例如 HTC Evo 4G 的 Android 版本为 2.3.5,其软件版本可以是 4.67.651.3(适用于 HTC Evo 4G)

我应该如何以编程方式获取此软件版本值?

4

2 回答 2

5

尝试这个:

    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”。

于 2012-05-23T08:31:47.717 回答
-1

我的一个应用程序的一个片段,用于发送一封电子邮件,其中包含我需要的应用程序的所有数据。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");
于 2012-05-23T08:27:57.163 回答