获取android设备唯一编号_获取android设备的唯一ID

在Android开发者官方blog上已经有一篇文章对此做了总结(参考链接1), 这里结合自已查询的资料再总结一下, 并给出最终符合要求的解决方案。

1. ANDROID_ID, Secure.ANDROID_ID

但是据说Motorola的Droid2犯了个低级错误, 所有的Droid2上使用同一个ANDROID_ID, 即9774D56D682E549C, ANDROID_ID的内部实现是存储在系统的一个SQLite数据库里, root过就有权限修改了

2. TelephonyManager.getDeviceId()

返回IMEI, MEID 或 ESN, 需要READ_PHONE_STATE权限

在过去, 那时所有的Android设备都是电话, 这个方法足够用了, 但是现在连Android电视也有了

3. Serial Number, android.os.Build.SERIAL

在Android 2.3以后的版本, 非手机的设备必须设置此序列号, 有些手机也设置此序列号

4. Mac Address

WiFi或Bluetooth设备的网卡物理地址, 但是并不是所有Android设备都有WiFi或Bluetooth, 且在WiFi没打开时也不能正常获取

5. cpu serial

CPU序列号, 通过cat /proc/cpuinfo可以查询, 我的Sumsung能正确查询, 但在有的设备上查询出的序列号是0

我的实现是优先使用ANDROID_ID, 再次是imei, 最后是android.os.Build.SERIAL

在java层的实现如下(java代码):

{% highlight java %}

String deviceId;

String androidId = Secure.getString(getBaseContext().getContentResolver(), Secure.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值