android设备唯一码的获取之一手机串号IMEI和网络识别号imsi等




   





1.IMEI
IMEI(International Mobile Equipment Identity)是 国际移动设备身份码 的缩写,国际移动装备辨识码,是由 15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。手机用户可以在手机中查到自己手机的IMEI码

*#06# 百度上说的跟下面方法获得的这个号相同

public String getDeviceId ()

Added in  API level 1

Returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.

Requires Permission: READ_PHONE_STATE


    String deviceid = tm.getDeviceId();电信手机实际测试就是IMEI号
    注意如果设备Id,不可用返回Null.也就是程序开发时不能只用它作为唯一的识别号,如果有多个设备获取不到,则区分不开。还有这个涉及到隐私,最好加密。

以下几个变量,如果设备没有电话相关功能的话,取值空
2. SimSerialNumber
//获取手机SIM卡的串号。
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getSimSerialNumber();

Returns the serial number of the SIM, if applicable. Return null if it is unavailable.

Requires Permission: READ_PHONE_STATE


SIM卡与USIM有什么区别?

http://wenda.so.com/q/1367714667069196?src=9999

UIM卡,SIM卡,USIM卡有什么区别啊@可互换使用吗?

http://wenda.so.com/q/1374457206065518?src=9999


3.imsi

国际移动用户识别码 (IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在 SIM卡中 ,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字, 中国 的MCC规定为460;MNC是移动网号码,由两位或者三位数字组成,中国移动的移动网络编码(MNC)为00;用于识别移动用户所归属的移动通信网;MSIN是移动用户识别码,用以识别某一移动通信网中的移动用户。
 String imsi = tm.getSubscriberId();
这个经电信的手机测试获取到的是状态信息里的MIN号

 手机号码       
注意,手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到 sim 卡中。这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。这就是为什么很多人得不到本机号码的原因
        String tel = tm.getLine1Number();
//电信手机卡实际测试没有获取到
//测试我的小米1s 联通版 USIM卡获取到了手机号码

你可能感兴趣的:(android)