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 相同?

谢谢,

图沙尔

4

2 回答 2

3

自 2.3 以来,我只有 LG P500 有同样的问题,在 2.2 上工作正常。要检测 SIM 是否准备就绪,您可以使用

`TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

字符串 imsi = tm.getSubscriberId();`

如果 imsi 不为空 SIM 已准备就绪。

在 LG P500 上也可以使用 PhoneStateListener,您可以使用它。

于 2012-03-22T15:38:48.540 回答
0

医生说

公共静态最终 int SIM_STATE_UNKNOWN

SIM 卡状态:未知。表示 SIM 正在状态之间转换。例如,当用户在 PIN_REQUIRED 状态下输入 SIM 引脚时,对 sim 状态的查询会在转到 SIM_STATE_READY 之前返回此状态。

SIM_STATE_READY 不等于 SIM_STATE_UNKNOW

显示未知的原因可能有很多。此外,它可能在 CDMA 网络中,因此可能没有 SIM 卡或访问它。

于 2011-11-10T12:30:54.803 回答