android获取设备唯一标识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a5nan/article/details/78532524

IMEI

百度百科解释:IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的“电子串号”,它与每台移动电话机一一对应,而且该码是全世界唯一的。每一只移动电话机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。

它有3个缺点:

  1. 需要android.permission.READ_PHONE_STATE权限,它在6.0+系统中是需要动态申请的。如果需求要求App启动时上报设备标识符的话,那么第一会影响初始化速度,第二还有可能被用户拒绝授权。

  2. android系统碎片化严重,有的手机可能拿不到DeviceId,会返回null或者000000。

  3. 这个方法是只对有电话功能的设备有效的,在pad上不起作用。

这次是pad项目,所以这个方法不适用。

ANDROID_ID

ANDROID_ID是设备第一次启动时产生和存储的64bit的一个随机数,不需要权限,pad通用,但是当设备恢复出厂模式后会被重置。

WIFI_MAC

基本上的Android设备都配备WLAN,可以通过WLAN地址来作为设备码,同理,也需要加入android.permission.ACCESS_WIFI_STATE 权限,否则返回null。在Android 6.0以后,系统做出许多重大的变化,官方是这么描述的:为了给用户更多的数据保护,从这个版本开始, Android 移除了通过 WiFi 和蓝牙 API 来在应用程序中可编程的访问本地硬件标示符。现在 WifiInfo.getMacAddress() 和 BluetoothAdapter.getAddress() 方法都将返回 02:00:00:00:00:00 。在新的版本当中要用其它的方法才行。






猜你喜欢

转载自blog.csdn.net/a5nan/article/details/78532524