当手机里面插入两张sim卡的时候获取两张imsi码
智能机时代,国内Android手机基本找不到单卡的手机了,android系统api给我们预留了一些默认的方法来获取默认sim卡的方法比如:
public static String getIMSI(Context context) { TelephonyManager mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String imsi = mTelephonyMgr.getSubscriberId(); return imsi; }
当我们要同时获取指定的sim的imsi码的时候,就要花费点时间研究一下了:
我这给出一种通过反射获取imsi码方案:
/* * *获取指定sim卡的IMSI序列号 */ public static String getSimIMSI(TelephonyManager telephonyManager, int simid) { int[] subId = null;//SubscriptionManager.getSubId(simid); Class<?> threadClazz = SubscriptionManager.class; try { Method method = threadClazz.getDeclaredMethod("getSubId", int.class); method.setAccessible(true); subId = (int[]) method.invoke(null, simid); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } Log.d(TAG, "getSimIMSI, simId = " + simid + " subId = " + ((subId != null) ? subId[0] : "invalid!")); int sub = -1; if (Build.VERSION.SDK_INT >= 24) { sub = (subId != null) ? subId[0] : SubscriptionManager.getDefaultSubscriptionId(); } else { if (threadClazz != null) { try { Method method = threadClazz.getDeclaredMethod("getDefaultSubId"); method.setAccessible(true); sub = (subId != null) ? subId[0] : (Integer) method.invoke(null, null); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } String IMSI = null; if (sub != -1) { Class clazz = telephonyManager.getClass(); try { Method method = clazz.getDeclaredMethod("getSubscriberId",int.class); method.setAccessible(true); IMSI = (String)method.invoke(telephonyManager,sub); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } Log.d(TAG, "IMSI = " + IMSI); if (!TextUtils.isEmpty(IMSI)) { return IMSI; } return null; }
今天的文章双卡时候获取指定的imsi码分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31982.html