【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编辑  收藏  举报

导航