TelephonyManagerを使って端末の情報を取得する
Android SDKでは電話番号やSIMのシリアルナンバーなどの情報をTelephonyManagerクラスを用いることで取得することができます。
端末の情報を取得することになるのでパーミッションの設定も必要になります。設定する必要があるパーミッションとともに、どのような情報が取得できるかを続きで説明します。
パーミッションの設定
AndroidManifest.xmlにREAD_PHONE_STATEのパーミッションを設定する必要があります。
下記のように記述します。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
メソッド
TelephonyManagerクラスで取得できる情報はいくつかありますが主なものだけあげます。残りや取得できる情報の詳細はAndroid Developersを参照してください。リンクはこちらです。
TelephonyManagerの主なgetメソッド
| メソッド名 | 情報 |
|---|---|
| getLine1Number | 電話番号 |
| getDeviceId | デバイスID |
| getSimCountryIso | SIMの国コード |
| getSimOperator | MCC+MNC (mobile country code + mobile network code) |
| getSimOperatorName | サービスプロバイダの名前 |
| getSimSerialNumber | SIMのシリアル番号 |
| getSimState | SIMの状態(通信可能か、PINロックされているかなど) |
| getVoiceMailNumber | ボイスメールナンバー |
サンプルコードです。
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
Log.d("TM", "Line1Number " + telephonyManager.getLine1Number());
Log.d("TM", "DeviceId " + telephonyManager.getDeviceId());
Log.d("TM", "SimCountryIso " + telephonyManager.getSimCountryIso());
Log.d("TM", "SimOperator " + telephonyManager.getSimOperator());
Log.d("TM", "SimOperatorName " + telephonyManager.getSimOperatorName());
Log.d("TM", "SimSerialNumber " + telephonyManager.getSimSerialNumber());
Log.d("TM", "SimState " + telephonyManager.getSimState());
Log.d("TM", "VoiceMailNumber " + telephonyManager.getVoiceMailNumber());
そしてこちらが上記のコードをエミュレータで動かしたログです。

5 Comments