您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

Android 获取设备唯一识别码分析

时间:12-14来源:作者:点击数:

Android 开发过程中,开发者迫于产品的淫威,需要实现一些特殊需要,比如获取 Android 设备号进去登录校验等等,但同时设备号对用户而言是不愿意暴露的。对于Android 中唯一区别设备信息的有哪些,怎么获得,特别整理一下。

IMEI

IMEI 唯一标识每台Android设备的序号

获取方式

<uses-permission Android:name="android.permission.READ_PHONE_STATE" />
   TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)
   String imei = tm.getDeviceId()

IMEI 特点

1,在Android 6.0 对系统权限需要申请,READ_PHONE_STATE 被列为危险权限,如果冒然使用该权限只查询IMEI有点大材小用,用户也不一定授权,所以IMEI会不好获取。

2,TELEPHONY_SERVICE 对于平板、电视等Android系统设备不一定能获得。

3,系统bug可能获取不到IMEI信息

ANDROID_ID

设备首次启动系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,如果手机出厂化,会重新生成一个设备号。

获取方式

Settings.System.getString(mContext.getContentResolver(), Settings.System.ANDROID_ID

ANDROID_ID 特点

1,相比 IMEI 而言获取的方式和途径相对而言比较容易

2,由于厂商之间各自的需求,Android_id 获取不一定正确,有可能和 IMEI 相同,也有可能会有重复的,不能有效区分唯一设备信息。

MAC 地址

MAC 使用手机 Wifi 或蓝牙的 MAC 地址作为设备标识

获取方式

WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
String mac = wifi.getConnectionInfo().getMacAddress();

MAC 通过wifi或者蓝牙获取需要设备支持 wifi 和蓝牙,并且保证打开

UUID

UUID (Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。

获取方式

UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法.
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐