相信关于这个获取网上有很多例子。我说说的情况吧,我项目使用的api版本是21(android 5.1)。所以没有网上6.0以上或者8.0方法,可以直接获取接口。只能用反射,因为接口在5.1是被屏蔽了。
meid 是电信的一种方式。我们目标是获取IMEI1作为唯一码。但是测试会发现下面的问题。
网上有个很全的解释:
这个的获取IMEI 是通过getDeviceId()这个方法获取。其中带参数的getDeviceId(0) 是被屏蔽的。
用这个方法获取,有一种情况获取不到IMEI 1(就是上图的第二种)。所以有点问题。
因为使用IMEI1 才是单卡和双卡都会有。作为唯一码必须的条件。
2、解决办法。
我使用getImei(0)方法来反射。借用网上一个代码修改的。看下面代码。
package com.readimei;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.text.TextUt