4

アクションを実行する前に、アプリで SIM カードのステータスを確認する必要があります。そのために TelephonyManager.getSimState () を使用します。アプリが状態を SIM_STATE_READY として認識した場合、それ以外の場合はユーザーにエラーを表示します。これはこれまでのところうまくいきましたが、最近、LG-P500 (LG Optimus One) デバイスの所有者から、ユーザーが SIM カードをデバイスに挿入して電話をかけたり受けたりできるにもかかわらず、アプリケーションが SIM カードに関するエラーを出し続けているという苦情が寄せられました。

ユーザーからのログは、デバイスで SIM_STATE_UNKNOWN (0) として SIM 状態を取得することを示しています。

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 が null でない場合、SIM の準備ができています。

また、LG P500 では PhoneStateListener が動作し、それを使用できます。

于 2012-03-22T15:38:48.540 に答える
0

ドクター曰く

public static final 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 に答える