在不调用 Java 的情况下从 Android O 上的本机获取序列号的正确方法是什么Build.getSerial()
?
在 Android < 26 的原生版本上,我们可以使用以下代码获取设备序列号:
string serial = read_property("ro.boot.serialno");
...
string read_property(const string& property_name) {
char propertyValue[PROP_VALUE_MAX];
int propertyLen = __system_property_get(property_name.c_str(), propertyValue);
...
}
在 Android O 上,这会引发错误:
Access denied finding property "ro.boot.serialno"
虽然READ_PHONE_STATE
授予了权限。似乎与Build.SERIAL
Android 26 中的弃用有关。
我设法使用 获取此属性adb
,因此该值未删除并且存在:
adb shell getprop ro.boot.serialno