由于Android 10 已无法正常获取SN / IMEI,会抛出SecurityException错误。
为了多设备多版本通用,以下代码屏蔽了10以上的设备,避免报错。
public static String getSN() {
String sn = "null";
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
// Android 10不再支持获取SN,需要系统签名
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
sn = Build.getSerial();
} else {
sn = Build.SERIAL;
}
}
return sn;
}
如果实在需要获取SN序列号,也不是不行。这个就需要应用有系统签名了,
并且需要申请READ_PRIVILEGED_PHONE_STATE
权限。