android UDID获取:android 设备SN的获取 续 android 设备唯一码的获取,Cpu号,Mac地址
16lz
2021-01-23
http://blog.csdn.net/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.os.SystemProperties.get() 读取系统属性,的方法是系统隐藏,无法直接使用.
我们可以使用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.os.SystemProperties.get(key);
- String v = getAndroidOsSystemProperties(key);
- Log.e("", "get " + key + " : " + v);
- }
来自:http://blog.csdn.net/hpccn/article/details/22684953
更多相关文章
- [转]Android 技术专题系列之九 -- 图形系统
- Android 的GUI 系统
- Android 实现全屏显示的几种方法整理
- Android中TextView中内容不换行的解决方法
- Android系统信息与安全机制
- Android调用系统分享,资源未找到问题
- android系统权限关机重启