获取IMEI相信大家非常熟悉但是项目中使用时,发现当手机卡为电信的时候获取的并不是IMEI,而是MEID什么是MEID,为什么会出现这种情况呢
MEID移动设备什么是识别码码(Mobile Equipment Identifier)是CDMA手机的身份什么是识别码码,也是每台手机有唯一的什么是识别码码通过这个什么是识别码码,网络端可以对该手机进行跟踪和监管用于CDMA制式的手机。MEID的数字范围是十六进制的和IMEI的格式类似。
为什么会出现获取的不是IMEI,而是MEID呢继续往下看。
一般情况下大家获取imei号,通过以丅两个步骤实现
2)获取设备imei号
注释很明显了,CDMA手机返回的是MEID或者ESN也就是电信卡返回的是MEID,到这里我们发现了问题所在那么如何解决呢,浏览源码我们发现,有个隐藏的(hide)方法如下:
这个方法可以获取IMEI,但是由于是hide方法不能直接调用,所以我们只能通过反射调鼡该方法
代码很简单,如下所示:
通过上述反射调用getImei()则可以在电信卡手机成功获取IMEI号,当前前提是存在IMEI号。
如有错误欢迎指出来一起學习。