2011-11-10 58 views
4

我的應用需要在執行操作前檢查SIM卡狀態。爲此,我使用TelephonyManager.getSimState()。如果應用程序將狀態視爲SIM_STATE_READY,則它會繼續向用戶顯示錯誤。 這到目前爲止運行良好,但最近我從LG-P500(LG Optimus One)設備用戶抱怨說,雖然用戶已將SIM卡插入設備並且能夠撥打/接聽電話,但我的應用程序仍然給出有關SIM卡的錯誤。LG-P500 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

的醫生說

公共靜態最終詮釋SIM_STATE_UNKNOWN

SIM卡狀態:未知。表示SIM在狀態之間轉換 。例如,當用戶在 PIN_REQUIRED狀態下輸入SIM引腳時,針對SIM狀態的查詢返回此狀態,然後 變爲SIM_STATE_READY。

SIM_STATE_READY不等於SIM_STATE_UNKNOW

原因未知顯示可能是很多。另外,很有可能它在CDMA網絡中,因此可能沒有SIM或無法訪問它。

+0

SIM卡是GSM網絡。 – Tushar

3

我有同樣的問題,只有LG P500自2.3以來,2.2工作正常。 要檢測SIM是否準備就緒,您可以使用

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

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

如果IMSI不是null SIM已準備就緒。

同樣在LG P500的作品PhoneStateListener,你可以使用它。