Android IMEI和MEID获取问题记录

IMEI/MEID 是什么?

    IMEI(nternational Mobile Equipment Identity )是移动设备国际识别码,又称为国际移动设备标识,是手机的唯一识别号码。(针对GSM设备)
    MEID (Mobile Equipment Identifier)是移动设备标识码,是每台CDMA设备唯一的识别码。通过这个识别码,可以对该设备进行跟踪和监管。
    IMEI/MEID 其实都是相当于设备的身份证号,产生设备这两种“身份证号”的现状,是因为移动无线通信初期标准不统一(主要是欧、美双方)所产生的遗留问题。

GSM/CDMA 是什么?

    在移动通信初期,有两种不同的通信技术:GSM与CDMA。CSM卡、CDMA卡指的就是符合这两种通信技术的SIM卡。

    GSM(Global System for Mobile Communications) 全球移动通信系统,是由欧洲电信标准组织ETSI( European Telecommunications Standards Institute)制订的一个数字移动通信标准。它采用时分多址技术。

    CDMA(Code Division Multiple Access)码分多址是在数字技术的分支扩频通信技术上发展起来的一种无线通信技术。最早起源于二战期间,当时因战争的需要研究开发出来的CDMA技术,其主要目的是为了防止敌方干扰对方的通信,在战争期间CDMA主要应用于军事抗干扰通信,后来被美国高通公司更新成为商用蜂窝电信技术。

    在初期移动通信是没有统一标准的,基于这两种技术存在很多通信标准。随着通信技术发展规范,到后面4G/5G(LTE/NR)阶段,才逐渐形成较为统一的规范。基于两种技术,大致有以下通信标准(标参与制定的国家还是挺多的):

GSM类CDMA类
GPRS
EDGE
UMTS
HSDPA
HSUPA
HSPA
LTE
HSPAP
GSM
TD_SCDMA
IWLAN
LTE_CA
NR
IS95A
IS95B
1xRTT
EVDO_0
EVDO_A
EVDO_B
EHRPD

如何获取?

Android 源码中提供了获取IMEI及MEID的接口。示例代码如下:

    private String getInfo() {
        TelephonyManager telephonyManager = (TelephonyManager) getSystemService("phone");
        StringBuilder sb = new StringBuilder();
        int phoneCount = telephonyManager.getPhoneCount();

        if (Build.VERSION.SDK_INT > 24) {
            for (int i = 0; i < phoneCount; i++) {
                String meid = telephonyManager.getMeid(i);
                sb.append("MEID:" + meid + "\n");
            }
        }
        for (int i = 0; i < phoneCount; i++) {
            String imei = telephonyManager.getImei(i);
            sb.append("Imei[" + i + "]:" + imei + "\n");
        }
        String deviceId = telephonyManager.getDeviceId();
        sb.append("deviceId:" + deviceId);
        return sb.toString();
    }

    需要注意的是 getDeviceId 函数,它会根据当前设备网络制式标准返回不同值:如果是GSM类的返回IMEI(此时它内部是调用 getImei 函数),如果是CDMA类返回MEID(此时它内部是调用 getMeid 函数)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值