Android之获取手机IMEI号和IMSI号

阮梓
2023-12-01

首先我们看一下IMEI号和IMSI号是什么:
(1)IMEI(International Mobile Equipment Identity,国际移动身份识别码):是由15位数字组成的”电子串号”,其组成结构为TAC(6位数字)+FAC(两位数字)+SNR(6位数字)+SP (1位数字)。它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。 IMEI码贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的”档案”和”身份证号”。
(2)IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码):是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。其中MCC是移动用户所属国家代号,占3位数字,中国的MCC规定为460;MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网;MSIN是移动用户识别码,用以识别某一移动通信网中的移动用户。

在Android中获取IMEI号方式如下:

    /**
     * 获取手机IMEI号
     */
    public static String getIMEI(Context context) {
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
        String imei = telephonyManager.getDeviceId();

        return imei;
    }

在Android中获取IMSI号方式如下:

      /**
       * 获取手机IMSI号
       */
     public static String getIMSI(Context context){
        TelephonyManager mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String imsi = mTelephonyMgr.getSubscriberId();

        return imsi ;
    }

最后,获取IMEI号和IMSI号需要权限,记得在AndroidManifest.xml文件中加上权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
 类似资料: