我们已经尝试了几乎所有的Android Build,它们都不是固件版本。
2 回答
固件是安卓设备上可用的操作软件,有不同厂商设计的不同版本。基本上它是软件的特定于设备的部分。例如,您可能在手机上运行 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);
更新
试试这个——
android.os.Build.FINGERPRINT
android.os.Build.BOARD
Build.HOST
Build.ID
Build.SERIAL
检查以下代码。
最后更新
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 字符串
我使用以下代码获取设备的固件版本:
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"
,我从设备制造商那里得到了这个属性地址。
此地址可能因设备和制造商而异,因此建议联系制造商的技术支持以获取正确的地址。