小编pir*_*ags的帖子

来自本机的 Android O 设备序列号

在 Android O 上从本机获取序列号而不调用 Java 的正确方法是什么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);
  ...
}
Run Code Online (Sandbox Code Playgroud)

在 Android O 上,这会引发错误:

Access denied finding property "ro.boot.serialno"
Run Code Online (Sandbox Code Playgroud)

虽然READ_PHONE_STATE获得了许可。Build.SERIAL似乎与Android 26 中已弃用的内容有关。

我设法使用 获取此属性adb,因此该值不会被删除并且存在:

adb shell getprop ro.boot.serialno
Run Code Online (Sandbox Code Playgroud)

c++ java android native android-8.0-oreo

5
推荐指数
1
解决办法
2578
查看次数

标签 统计

android ×1

android-8.0-oreo ×1

c++ ×1

java ×1

native ×1