再谈 android 设备SN的获取 续 android 设备唯一码的获取,Cpu号,Mac地址
16lz
2022-06-06
之前发过一篇文章获取
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);}
-------完----------
更多相关文章
- android自定义属性之format介绍
- Android使用WebView和JS互相调用
- Android强制使用WebView不调用系统或外部浏览器
- Linux下Android(安卓)SDK环境搭建--使用命令更新Android(安卓)SD
- Android三种播放视频的方式
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程