サイト移転のお知らせ:http://techbooster.org/に移転しました

TelephonyManagerを使って端末の情報を取得する

10月 20, 2010   //   by kkato   //   デバイス  //  3 Comments

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());

そしてこちらが上記のコードをエミュレータで動かしたログです。

関連する記事:

Sponsored Link

3 Comments

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です