かるーくスルーされたので「きー!!(怒)」となっています。
ま、そんな愚痴はともかく、
今日はSIMの有無を確認するコードを。
SIMの状況を取得するにはTelephonyManagerを使用します。
getSystemServiceでシステムの状況を取得すれば、判定することができます。
まずは取得。
int mStatus = 0; TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); mStatus = telManager.getSimState();
これでInt型で取得することができるので、あとは状況に応じて処理をふっていきます。
switch(mStatus) { case TelephonyManager.SIM_STATE_UNKNOWN: // SIM不明 Toast.makeText(this, "まぁ、許す", Toast.LENGTH_SHORT).show(); break; case TelephonyManager.SIM_STATE_ABSENT: // SIMなし Toast.makeText(this, "ゆるさない", Toast.LENGTH_SHORT).show(); break; case TelephonyManager.SIM_STATE_PIN_REQUIRED: // PIN待ち Toast.makeText(this, "まぁ、いいか", Toast.LENGTH_SHORT).show(); break; case TelephonyManager.SIM_STATE_PUK_REQUIRED: // PUK待ち Toast.makeText(this, "うーん、悩む", Toast.LENGTH_SHORT).show(); break; case TelephonyManager.SIM_STATE_NETWORK_LOCKED: // ロック Toast.makeText(this, "エクセレント!!", Toast.LENGTH_SHORT).show(); break; case TelephonyManager.SIM_STATE_READY: // 在り Toast.makeText(this, "とおるがいい", Toast.LENGTH_SHORT).show(); break; default: Toast.makeText(this, "わかんないから許す", Toast.LENGTH_SHORT).show(); break; }
たったこれだけです。
まぁ、一応例外処理としてdefaultをいれております。
上のコードではSIMがある場合のみ次の処理へいくように・・・というためにかいたのですが、
分かりやすくするためにToastでメッセージを表示するだけにしておきました。
特にpermissionの設定もいらないので
適当にごにょごにょするには良いのではないかと思います。
設定値を勝手に変更すれば、エアな感じにもできるんじゃないのかな?と勝手に憶測。
といっても、現物SIMがないと結局は通信なんぞできないはず(なのかな?)なので
あんまり使うことはないかもですけど。
0 件のコメント:
コメントを投稿