AndroidはIMSI情報を取得する(モバイル、ユニコム、テレコム携帯電話カードと判断する)

4760 ワード

まず、携帯電話のIMSI号の上位3位460が国で、次いで2位002が中国移動、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     }