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;
}