在Android 9及以上版本中,由于隐私和安全性的考虑,获取设备序列号(Serial Number)的方式发生了改变。在Android 9及以上版本中,android.os.Build.SERIAL
可能会返回一个空字符串或者包含"unknown"等信息,而不再是设备的真实序列号。
为了适配Android 9以上的硬件,可以使用以下方法获取设备的序列号:
java
public String getDeviceSN() {
String serialNumber;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
try {
serialNumber = Build.getSerial();
} catch (SecurityException e) {
e.printStackTrace();
serialNumber = "unknown";
}
} else {
serialNumber = Build.SERIAL;
}
return dev_sn.equals("prod") ? serialNumber : dev_sn;
}
在Android 9及以上版本,可以使用Build.getSerial()
方法来获取设备的序列号。请注意,这个方法可能会抛出SecurityException
,因此需要进行异常处理。