Android-simカードステータス取得

9188 ワード

モールドテストではsimの状態を頻繁に読み取る必要があり、simカードを挿入するかどうか、事業者情報、simカードタイプなどが含まれており、方法は以下の通りである.
/*
  sim 
*/
public String readSIMCard() {
            TelephonyManager tm = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);//        
        StringBuffer sb = new StringBuffer();
        switch(tm.getSimState()){ //getSimState()  sim        6   
                case TelephonyManager.SIM_STATE_ABSENT :sb.append("  ");break; 
                case TelephonyManager.SIM_STATE_UNKNOWN :sb.append("    ");break;
                case TelephonyManager.SIM_STATE_NETWORK_LOCKED :sb.append("  NetworkPIN  ");break;
                case TelephonyManager.SIM_STATE_PIN_REQUIRED :sb.append("  PIN  ");break;
                case TelephonyManager.SIM_STATE_PUK_REQUIRED :sb.append("  PUK  ");break;
                case TelephonyManager.SIM_STATE_READY :sb.append("  ");break;
        }

        if(tm.getSimSerialNumber()!=null){
                sb.append("@" + tm.getSimSerialNumber().toString());
        }else{
                sb.append("@    SIM  ");
        }

        if(tm.getSimOperator().equals("")){
                sb.append("@         ");
        }else{
                sb.append("@" + tm.getSimOperator().toString());
        }

        if(tm.getSimOperatorName().equals("")){
                sb.append("@       ");
        }else{
                sb.append("@" + tm.getSimOperatorName().toString());
        }

        if(tm.getSimCountryIso().equals("")){
                sb.append("@      ");
        }else{
                sb.append("@" + tm.getSimCountryIso().toString());
        }

        if (tm.getNetworkOperator().equals("")) {
                sb.append("@         ");
        } else {
                sb.append("@" + tm.getNetworkOperator());
        }
        if (tm.getNetworkOperatorName().equals("")) {
                sb.append("@           ");
        } else {
                sb.append("@" + tm.getNetworkOperatorName());
        }
        if (tm.getNetworkType() == 0) {
                sb.append("@        ");
        } else {
                sb.append("@" + tm.getNetworkType());
        }
        return sb.toString();
    }
/*
  sim   
*/

private String getSimType() {
        //   SIMType   
        String simType = "";
        //       ,    sim     
        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
        int type = tm.getNetworkType();
        System.out.println(Contants.DEBUG+" NetWorkType:"+type);
        //Test1:        USIM ,         10-------NETWORK_TYPE_HSPA
        //Test2:        OTA 2-----NETWORK_TYPE_EDGE
        //Test3:         OTA 2-----NETWORK_TYPE_EDGE
        //...

        switch (type) {
            case TelephonyManager.NETWORK_TYPE_UNKNOWN://0
                simType= "UNKOWN";
                break;
            case TelephonyManager.NETWORK_TYPE_GPRS://1
                simType= "SIM";
                break;
            case TelephonyManager.NETWORK_TYPE_EDGE://2
                simType= "SIM";
                break;
            case TelephonyManager.NETWORK_TYPE_UMTS://3
                simType= "USIM";
                break;
            case TelephonyManager.NETWORK_TYPE_CDMA://4
                simType= "Either IS95A or IS95B Card";
                break;
            case TelephonyManager.NETWORK_TYPE_EVDO_0://5
                simType= "EVDO revision 0 Card";
                break;
            case TelephonyManager.NETWORK_TYPE_EVDO_A://6
                simType= "EVDO revision A Card";
                break;
            case TelephonyManager.NETWORK_TYPE_1xRTT://7
                simType= "1xRTT Card";
                break;
            case TelephonyManager.NETWORK_TYPE_HSDPA://8
                simType= "HSDPA Card";
                break;
            case TelephonyManager.NETWORK_TYPE_HSUPA://9
                simType= "HSUPA Card";
                break;
            case TelephonyManager.NETWORK_TYPE_HSPA://10
                simType= "USIM";
                break;

        }
        System.out.println(Contants.DEBUG+" sim type :"+simType);
        return simType;
    }