背景
之前的唯一标识是通过android.os.Build.SERIAL
或者getSerial() 获取,但是Q之后会返回unknow或者空。因此在Android Q 之后此方法便不可行了。
我们的项目是运行在瑞星微板卡上的LCD广告机应用,是有有线网口的。在Android Q之后,虽然无线的mac地址会被随机化,但是有线的网口mac地址肯定不会变化了,因此我们的方案是获取etho的mac地址。
代码
public String getSerialNumber() {
String serial = "";
System.out.println("getSerialNumber Begin\n");
try {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {//8.0-
serial = execCmd("getprop ro.boot.serialno");
System.out.println("getprop.serialno:" + serial+"\n");
}else{
serial = getMacEth0();