Android

AndroidでSIMカードが刺さっているかどうかを取得する

AndroidでSIMカードが刺さっているかどうかを確認したかったので、やり方を調べてみました。
以下のコードでSIMカードの状態が取得できます。

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
int simState = telephonyManager.getSimState();

getSimState()は以下のいずれかの値を返します。

いろいろな値がありますが、シンプルにSIMカードが刺さっていて、それが利用できるかどうかを判別したいだけならSTATE_READYであるかどうかを判別すればOKです。

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
int simState = telephonyManager.getSimState();
if (simState == TelephonyManager.SIM_STATE_READY) {
  // SIMカードが刺さっていて利用可能な状態
}