Android determines the phone SIM status
Public String readSIMCard (){
TelephonyManager tm = (TelephonyManager) this. getSystemService (TELEPHONY_SERVICE); // obtain related system services
StringBuffer sb = new StringBuffer ();
Switch (tm. getSimState () {// getSimState () gets the sim in the following 6 states:
Case TelephonyManager. SIM_STATE_ABSENT: sb. append ("no card"); break;
Case TelephonyManager. SIM_STATE_UNKNOWN: sb. append ("unknown state"); break;
Case TelephonyManager. SIM_STATE_NETWORK_LOCKED: sb. append ("NetworkPIN unlock required"); break;
Case TelephonyManager. SIM_STATE_PIN_REQUIRED: sb. append ("PIN unlock required"); break;
Case TelephonyManager. SIM_STATE_PUK_REQUIRED: sb. append ("requires PUK unlock"); break;
Case TelephonyManager. SIM_STATE_READY: sb. append ("good"); break;
}
If (tm. getSimSerialNumber ()! = Null ){
Sb. append ("@" + tm. getSimSerialNumber (). toString ());
} Else {
Sb. append ("@ cannot get SIM card number ");
}
If (tm. getSimOperator (). equals ("")){
Sb. append ("@ unable to obtain Supplier Code ");
} Else {
Sb. append ("@" + tm. getSimOperator (). toString ());
}
If (tm. getSimOperatorName (). equals ("")){
Sb. append ("@ unable to obtain supplier ");
} Else {
Sb. append ("@" + tm. getSimOperatorName (). toString ());
}
If (tm. getSimCountryIso (). equals ("")){
Sb. append ("@ unable to acquire nationality ");
} Else {
Sb. append ("@" + tm. getSimCountryIso (). toString ());
}
If (tm. getNetworkOperator (). equals ("")){
Sb. append ("@ unable to obtain network operator ");
} Else {
Sb. append ("@" + tm. getNetworkOperator ());
}
If (tm. getNetworkOperatorName (). equals ("")){
Sb. append ("@ unable to get network operator name ");
} Else {
Sb. append ("@" + tm. getNetworkOperatorName ());
}
If (tm. getNetworkType () = 0 ){
Sb. append ("@ unable to obtain network type ");
} Else {
Sb. append ("@" + tm. getNetworkType ());
}
Return sb. toString ();
}