之前发过一篇文章获取
blog./hpccn/article/details/7872141
android 设备唯一码的获取,Cpu号,Mac地址
这个方法使用中发现一些不完美的地方.
--------------------------------------
新的方法:
在使用命令行, adb device
adb devices
List of devices attached
0288504643dfbxxx device
^__这个号做为设备的SN号更适合一些.如何获取此值?
使用 adb get-serialno 可以获取 此值
$adb get-serialno
0288504643dfbxxx
一步步查找
$adb shell
$getprop
.... ...
[ro.boot.serialno]: [0288504643dfbxxx]
....
[ro.serialno]: [0288504643dfbxxx]
系统属性中 这两项值相同, 测试多台设备后,此值均相同,
使用Java获取
android.() 读取系统属性,的方法是系统隐藏,无法直接使用.
我们可以使用Java反射:
static Method systemProperties_get = null;
static String getAndroidOsSystemProperties(String key) {
String ret;
try {
systemProperties_get = Class.forName("android.os.SystemProperties").getMethod("get", String.class);
if ((ret = (String) systemProperties_get.invoke(null, key)) != null)
return ret;
} catch (Exception e) {
e.printStackTrace();
return null;
}
return "";
}
测试代码如下:
运行后,可以看我们读取的设备SN号, 系统恢复出厂设置,刷机,均没改变此SN.
String []propertys = {"ro.boot.serialno", "ro.serialno"};
for (String key : propertys){
//String v = android.(key);
String v = getAndroidOsSystemProperties(key);
Log.e("", "get " + key + " : " + v);
}
-------完----------
本文发布于:2024-01-30 20:59:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661954622802.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |