之前发过一篇文章获取


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);}



-------完----------



更多相关文章

  1. android自定义属性之format介绍
  2. Android使用WebView和JS互相调用
  3. Android强制使用WebView不调用系统或外部浏览器
  4. Linux下Android(安卓)SDK环境搭建--使用命令更新Android(安卓)SD
  5. Android三种播放视频的方式
  6. 箭头函数的基础使用
  7. NPM 和webpack 的基础使用
  8. Python list sort方法的具体使用
  9. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程

随机推荐

  1. Android智能指针SP WP使用方法介绍
  2. Android上运行Http Server
  3. android播放rtsp文件
  4. Android之Intent原理
  5. Android(安卓)如何建立你的菜单
  6. Android中Context用法详解
  7. Android传感器、语音识别、定位系统、Goo
  8. Android笔试总结
  9. Cordova插件调用Android原生Activity修改
  10. Android命名规范(重点讲解:包名)