获取手机IMEI/ICCID/IMSI

TelephonyManager telManager = (TelephonyManager) this
                .getSystemService(Context.TELEPHONY_SERVICE);

        String imei = telManager.getDeviceId();       //取出IMEI:国际移动设备标识,是手机的识别id(International Mobile Equipment Identity)
        String tel = telManager.getLine1Number();     //这就是总是不能成功的获取本机手机号方法
        String iccid =telManager.getSimSerialNumber();  //取出ICCID:集成电路卡识别码(固化在手机SIM卡中,就是SIM卡的序列号)很容易伪造哦
        String imsi =telManager.getSubscriberId();  //取出IMSI:国际移动用户识别码(就是识别你是哪个运营商的SIM卡)
        String operatorNum = telManager.getSimOperator();
        String operator = "";
        if (operatorNum != null) {

            if (operatorNum.equals("46000") || operatorNum.equals("46002")
                    || operatorNum.equals("46007")) {

                // 中国移动
                operator = "中国移动";
            } else if (operatorNum.equals("46001")) {

                // 中国联通
                operator = "中国联通";

            } else if (operatorNum.equals("46003")) {

                // 中国电信
                operator = "中国电信";

            }

        }
        Log.e("aaa","imei--"+imei+"--iccid--"+iccid+"--imsi--"+imsi+"--运营商--"+operator);

补充说明

[1]在手机通话界面输入 *#06# 即可显示手机的IMEI,也就是 常说的手机的设备ID

[2] SIM卡背面的数字就是手机SIM卡的ICCID,也就是手机卡的序列号,这个号很容易造假

[3]很久以前Android是可以获取手机号的,现在随着SIM卡的升级,手机号码通过代码获取不到了

[4]IMSI我理解的是标识移动用户的(为了在无线路径和整个GSM(Global System for Mobile Communications,全球移动通信系统)移动通信网上正确地识别某个移动客户,就必须给移动客户分配一个特定的识别码。这个码是存储在SIM卡里的,通过代码可以获取)

啰嗦
SIM卡是(Subscriber Identity Module 客户识别模块)的缩写,也称为用户身份识别卡、智能卡
ICCID是手机卡背面的20位数字

实施实名制的初衷是遏制不良信息的传播,防范打击各种电话诈骗活动,解决相关部门取证难、查处难的问题。

你可能感兴趣的:(获取手机IMEI/ICCID/IMSI)