Проблема определения состояния SIM-карты на LG-P500 - PullRequest
4 голосов
/ 10 ноября 2011

Мое приложение должно проверить состояние SIM-карты перед выполнением действия.Поэтому для этого я использую TelephonyManager.getSimState ().Если приложение видит состояние как SIM_STATE_READY, оно продолжается, иначе выдает ошибку пользователю.До сих пор это работало хорошо, но недавно я получил жалобы от владельцев устройств LG-P500 (LG Optimus One), которые утверждают, что, хотя пользователь вставил 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 голосов
/ 22 марта 2012

У меня такая же проблема только с 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 голосов
/ 10 ноября 2011

Док говорит

публичный статический финал int SIM_STATE_UNKNOWN

Состояние SIM-карты: неизвестно. Означает, что SIM-карта находится в переходе между государствами. Например, когда пользователь вводит пин-код SIM-карты под Состояние PIN_REQUIRED, запрос статуса сима возвращает это состояние раньше поворачиваемся к SIM_STATE_READY.

SIM_STATE_READY не равно SIM_STATE_UNKNOW

Причин для показа неизвестного может быть много. Кроме того, есть вероятность, что он находится в сети CDMA, следовательно, может не иметь SIM-карты или доступа к ней.

...