如何以编程方式获取Android的固件版本?

时间:2016-11-04 11:32:29

标签: android version android-build android-firmware

通用平板电脑的以下屏幕截图显示了固件版本的示例: enter image description here

我们几乎尝试了Android Build的所有内容,其中没有一个是固件版本。

2 个答案:

答案 0 :(得分:1)

固件是Android设备上可用的操作软件,它有不同制造商设计的不同版本。基本上它是软件的设备特定部分。例如,您可能在手机上运行了Android 4.2.2,但其固件号看起来完全不同,因为它与操作系统相关的细节更多。固件号由几个元素组成,所有这些元素对于手机的运行至关重要:

PDA:Android操作系统和您的自定义。 电话:设备的实际标识符。 CSC(国家/地区退出代码):语言和国家/地区特定参数。 Bootloader:启动时运行到所有单元进程的引导加载程序。

  

软件构建版本基本上是固件版本

请参阅android.os.Build.VERSION。 SDK或SDK包含API版本。 android.os.Build.VERSION_CODES包含相关常量。

  

String deviceSoftwareVersion=telephonyManager.getDeviceSoftwareVersion();

请参阅此Build.VERSION

  

在代码中使用它的过程。

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
     // only for gingerbread and newer versions
}
  

这也可以通过代码

进行检查
System.out.println("button press on device name = "+android.os.Build.MODEL +" brand = "+android.os.Build.BRAND +" OS version = "+android.os.Build.VERSION.RELEASE + " SDK version = " +android.os.Build.VERSION.SDK_INT);
  

更新

试试这个 -

  1. android.os.Build.FINGERPRINT
  2. android.os.Build.BOARD
  3. Build.HOST
  4. Build.ID
  5.   
        
    1. Build.SERIAL
    2.   

    检查以下代码。

      

    最终更新

    String mString = "";
    
        mString.concat("VERSION.RELEASE {" + Build.VERSION.RELEASE + "}");
        mString.concat("\nVERSION.INCREMENTAL {" + Build.VERSION.INCREMENTAL + "}");
        mString.concat("\nVERSION.SDK {" + Build.VERSION.SDK + "}");
        mString.concat("\nBOARD {" + Build.BOARD + "}");
        mString.concat("\nBRAND {" + Build.BRAND + "}");
        mString.concat("\nDEVICE {" + Build.DEVICE + "}");
        mString.concat("\nFINGERPRINT {" + Build.FINGERPRINT + "}");
        mString.concat("\nHOST {" + Build.HOST + "}");
        mString.concat("\nID {" + Build.ID + "}");
    
        ((TextView) findViewById(R.id.textView1)).setText(mString);
    
      

    您也可以使用Build.DISPLAY

    用于向用户显示的构建ID字符串

答案 1 :(得分:0)

我使用以下代码获取设备的固件版本:

public String getFirmwareVersion() {
    try {
        Class cls = Class.forName("android.os.SystemProperties");
        Method method = cls.getMethod("get", String.class);
        method.setAccessible(true);
        return (String) method.invoke(cls, FIRMWARE_VERSION_PROPERTY);
    } catch (Exception e) {
        return null;
    }
}

作为 FIRMWARE_VERSION_PROPERTY 我使用了 "ro.product.version" 我从设备制造商那里得到了这个属性地址。

此地址可能因设备和制造商而异,因此建议联系制造商的技术支持以获得正确的地址。