android获取SIM卡状态

来源:互联网 发布:网络专接本 编辑:程序博客网 时间:2024/05/21 04:20
最近遇到需要获取SIM卡状态,发现可以通过两种方式获得
1.android.telephony.TelephonyManager中的getSimState()来获得,
    public int getSimState() {
        //Do-not-delete-multisim-flag begin
        if (SIM_COUNT_CONFIG_MULTISIM) {
            if (DEBUG) Log.d(TAG, "@@ getSimState() for linkId: " + getDefaultPSSim());
            return getSimStateMSMS(getDefaultPSSim());
        }
        //Do-not-delete-multisim-flag end
        String prop = SystemProperties.get(TelephonyProperties.PROPERTY_SIM_STATE);
        if ("ABSENT".equals(prop)) {
            return SIM_STATE_ABSENT;
        }
        else if ("PIN_REQUIRED".equals(prop)) {
            return SIM_STATE_PIN_REQUIRED;
        }
        else if ("PUK_REQUIRED".equals(prop)) {
            return SIM_STATE_PUK_REQUIRED;
        }
        else if ("NETWORK_LOCKED".equals(prop)) {
            return SIM_STATE_NETWORK_LOCKED;
        }
        else if ("READY".equals(prop)) {
            return SIM_STATE_READY;
        }
        else {
            return SIM_STATE_UNKNOWN;
        }
    }

2.通过导入import com.android.internal.telephony.TelephonyProperties和
import android.os.SystemProperties;
来获得SystemProperties.get(TelephonyProperties.PROPERTY_SIM_STATE)的值如果是"READY"即是有卡,"UNKNOW"即无卡
0 0