android 设备唯一码的获取,Cpu号,Mac地址 | 您所在的位置:网站首页 › android设备id获取 › android 设备唯一码的获取,Cpu号,Mac地址 |
开发Android应用中,我们常常需要设备的唯一码来确定客户端。
Android 中的几中方法,使用中常常不可靠 1. DEVICE_ID 假设我们确实需要用到真实设备的标识, 可能就需要用到DEVICE_ID。通过 TelephonyManager.getDeviceId() 获取,它根据不同的手机设备返回IMEI, MEID或者ESN码. 缺点:在少数的一些设备上,该实现有漏洞,会返回垃圾数据 2. MAC ADDRESS 我们也可以通过Wifi获取MAC ADDRESS作为DEVICE ID 缺点:如果Wifi关闭的时候,硬件设备可能无法返回MAC ADDRESS.。 3. Serial Number android.os.Build.SERIAL直接读取 缺点:在少数的一些设备上,会返回垃圾数据 4. ANDROID_ID ANDROID_ ID是设备第一次启动时产生和存储的64bit的一个数, 缺点:当设备被wipe后该数改变, 不适用。
android 底层是 Linux,我们还是用Linux的方法来获取:
1 cpu号: 文件在: /proc/cpuinfo 通过Adb shell 查看: adb shell cat /proc/cpuinfo 2 mac 地址 文件路径 /sys/class/net/wlan0/address adb shell cat /sys/class/net/wlan0/address xx:xx:xx:xx:xx:aa
这样可以获取两者的序列号,
方法确定,剩下的就是写代码了 以Mac地址为例: String getMac() { String macSerial = null; String str = ""; try { Process pp = Runtime.getRuntime().exec( "cat /sys/class/net/wlan0/address "); InputStreamReader ir = new InputStreamReader(pp.getInputStream()); LineNumberReader input = new LineNumberReader(ir); for (; null != str;) { str = input.readLine(); if (str != null) { macSerial = str.trim();// 去空格 break; } } } catch (IOException ex) { // 赋予默认值 ex.printStackTrace(); } return macSerial; } |
CopyRight 2018-2019 实验室设备网 版权所有 |