LG-P500上的SIM卡状态检测问题

4
我的应用在执行某个操作之前需要检查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视为相同?

谢谢,

Tushar

2个回答

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并且您可以使用它。


0

文档中写道:

public static final int SIM_STATE_UNKNOWN

SIM卡状态:未知。表示SIM卡正在转换状态之间。例如,当用户在PIN_REQUIRED状态下输入SIM卡PIN码时,查询sim卡状态会返回此状态,然后转为SIM_STATE_READY。

SIM_STATE_READY不等于SIM_STATE_UNKNOW

显示未知的原因可能有很多。而且,有可能它处于CDMA网络中,因此可能没有SIM卡或无法访问它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接