北京哪些荨麻疹医院好 https://m-mip.39.net/disease/mip_10490515.htmlAndroid开发过程中,开发者迫于产品的淫威,需要实现一些特殊需要,比如获取Android设备号进去登录校验等等,但同时设备号对用户而言是不愿意暴露的。对于Android中唯一区别设备信息的有哪些,怎么获得,特别整理一下。
IMEI
IMEI唯一标识每台Android设备的序号
获取方式
uses-permissionAndroid:name="android.permission.READ_PHONE_STATE"/TelephonyManagertm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)Stringimei=tm.getDeviceId()
IMEI特点
1,在Android6.0对系统权限需要申请,READ_PHONE_STATE被列为危险权限,如果冒然使用该权限只查询IMEI有点大材小用,用户也不一定授权,所以IMEI会不好获取。
,TELEPHONY_SERVICE对于平板、电视等Android系统设备不一定能获得。
,系统bug可能获取不到IMEI信息
ANDROID_ID
设备首次启动系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,如果手机出厂化,会重新生成一个设备号。
获取方式
Settings.System.getString(mContext.getContentResolver(),Settings.System.ANDROID_ID
ANDROID_ID特点
1,相比IMEI而言获取的方式和途径相对而言比较容易
,由于厂商之间各自的需求,Android_id获取不一定正确,有可能和IMEI相同,也有可能会有重复的,不能有效区分唯一设备信息。
MAC地址
MAC使用手机Wifi或蓝牙的MAC地址作为设备标识
获取方式
WifiManagerwifi=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);Stringmac=wifi.getConnectionInfo().getMacAddss();
MAC通过wifi或者蓝牙获取需要设备支持wifi和蓝牙,并且保证打开
UUID
UUID(UniversallyUniqueIdentifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式。
获取方式
UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法.
参考文献
获取Android设备唯一标识码Android平台获取手机IMSI等安卓应用都要获取IMEI