【Android】设备标识简介(imei imsi mac地址)
IMEI:
1- 意义:
参考http://zh.wikipedia.org/zh-cn/IMEI 国际移动设备辨识码 ,共15位,和厂商,产地等有关。
2- 获取:
直接查看设备信息,设置-关于手机-状态信息-IMEI
可以通过代码 TelephoneManager getDeviceId() 方法,需要指定权限 android.permission.READ_PHONE_STATE
权限:<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
代码示例:
TelephonyManager telephonyManager ; telephonyManager = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); String imei = telephonyManager.getDeviceId(); Log.v("IMEI", imei);
结果:
3- 风险:
a)有些厂商定制机器获取到的值为空 或者 不同的机器返回同一个值
b)刷机会变化
IMSI:
1- 意义:
参考http://zh.wikipedia.org/wiki/国际移动用户识别码
国际移动用户识别码, 15位,通常存放在SIM卡中
2- 获取:
通过代码 TelephoneManager getSubscriberId(),需要指定权限 android.permission.READ_PHONE_STATE
权限:<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
代码示例:
TelephonyManager telephonyManager ; telephonyManager = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); String imsi = telephonyManager.getSubscriberId(); Log.v("imsi", imsi);
结果:
3- 风险:
由于和SIM卡相关,设备更换SIM卡,必然会引起变化,当没有imsi的时候,获取到的imsi为空串""
在有的机器上,通过代码也可能出现获取到的IMSI为空的情况
mac地址:
1- 获取:
直接查看,设置-关于本机-状态信息-WLAN MAC地址 或者 代码获取:通过WifiInfo getMacAddress()方法
权限:<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
代码示例:
WifiManager wifiManager; wifiManager = (WifiManager)this.getApplication().getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); String macAddr = wifiInfo.getMacAddress(); Log.v("macAddr", macAddr);
结果:
2- 风险:
可能获取不到
posted on 2014-05-12 11:52 alex_lee1 阅读(2138) 评论(0) 编辑 收藏 举报