由于国内的运营商问题,双卡手机获取IMSI号问题要根据厂商API 来实现。
下面我们就来做一套完整的分析运营商获取IMSI号逻辑。
1,首先我们要判断手机的平台。
1.1,判断手机是否MTK平台
public static MtkDoubleInfo initMtkDoubleSim(Context mContext) {
MtkDoubleInfo mtkDoubleInfo = new MtkDoubleInfo();
try {
TelephonyManager tm = (TelephonyManager) mContext
.getSystemService(Context.TELEPHONY_SERVICE);
Class<?> c = Class.forName("com.android.internal.telephony.Phone");
Field fields1 = c.getField("GEMINI_SIM_1");
fields1.setAccessible(true);
mtkDoubleInfo.setSimId_1((Integer) fields1.get(null));
Field fields2 = c.getField("GEMINI_SIM_2");
fields2.setAccessible(true);
mtkDoubleInfo.setSimId_2((Integer) fields2.get(null));
Method m = TelephonyManager.class.getDeclaredMethod(
"getSubscriberIdGemini", int.class);
mtkDoubleInfo.setImsi_1((St