我的应用需要在执行操作前检查SIM卡状态。因此,我使用TelephonyManager.getSimState()。如果应用程序将状态视为SIM_STATE_READY,那么它会继续向用户显示错误。 到目前为止这一点运作良好,但最近我得到了LG-P500(LG Optimus One)设备所有者的抱怨说,虽然用户已将SIM卡插入设备并能够拨打/接听电话我的应用程序一直给出有关SIM卡的错误。
来自用户的日志显示在设备上我获得SIM卡状态为SIM_STATE_UNKNOWN(0)。
OS Version :2.3.3
Brand :lge
Device :thunderg
LG是否有办法以不同的方式管理Sim状态,或者LG以某种方式对待SIM_STATE_UNKNOWN和SIM_STATE_READY相同?
谢谢,
图莎尔
答案 0 :(得分:3)
我只有LG P500自2.3以来也有同样的问题,在2.2上工作正常。 要检测SIM是否准备就绪,您可以使用
`TelephonyManager tm =(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
String imsi = tm.getSubscriberId();`
如果imsi不为空,则SIM已准备就绪。
另外在LG P500上可以使用PhoneStateListener,你可以使用它。
答案 1 :(得分:0)
医生说
public static final int SIM_STATE_UNKNOWN
SIM卡状态:未知。表示SIM正处于转换状态 国家之间。例如,当用户输入SIM引脚时 PIN_REQUIRED状态,对sim状态的查询返回此状态 转到SIM_STATE_READY。
SIM_STATE_READY不等于SIM_STATE_UNKNOW
显示未知的原因可能很多。此外,很有可能它在CDMA网络中,因此可能没有SIM或访问它。