您的位置:首页 > 移动开发 > Android开发

android UDID获取:android 设备SN的获取 续 android 设备唯一码的获取,Cpu号,Mac地址

2016-09-07 15:53 543 查看
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反射:

[java]
view plain
copy





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.

[java]
view plain
copy





        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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: