你的位置:首页 > 操作系统

[操作系统]android 获取IMSI信息(判断是移动,联通,电信手机卡)


首先我们需要知道手机IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。那么第一步就是先获取手机IMSI号码:代码如下

 1   /** 2    *获取IMSI信息 3    * @param context 4    * @return 5   */ 6   public static String getPhoneIMSI(Context context) { 7     TelephonyManager mTelephonyMgr = (TelephonyManager) context 8         .getSystemService(Context.TELEPHONY_SERVICE); 9     Log.v("LJC", "get getSubscriberId " + mTelephonyMgr.getSubscriberId());10     return mTelephonyMgr.getSubscriberId();11   }

或: 

 

 1   /** 2    * 检查是否电信手机卡 3    *  4    * @return 电信卡 返回true否则false 5   */ 6   public boolean checkSIMCarl(Context context) { 7     boolean value = false; 8     String IMSI = getPhoneIMSI(context); 9     if (IMSI != null) {10       if (IMSI.startsWith("46003"))11         value = true;12     }13     return value;14     // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。其中15     // if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {16     // ProvidersName = "中国移动";17     // } else if (IMSI.startsWith("46001")) {18     // ProvidersName ="中国联通";19     // } else if (IMSI.startsWith("46003")) {20     // ProvidersName = "中国电信";21   }