ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 電話機能偏

IMEIとSIMカードID、電話番号を得る

Getting the Phone Number,IMEI,and SIM Card ID

もしセキュリティに関するアプリケーションを書きたかったら、
電話のSIMカードが変更されたかどうかを知りたいかもしれません。
例えば、デバイスでアプリケーションが最初に走ったときに、
デバイスのSIMカードIDを取得し、
そのIDをアプリケーションに保存します。
電話はいつもAirplaneModeONからAirplaneModeOFFに切り替わり、
AirplaneModeの切り替えでどう調べるかを示しました。)
そしたら、以前に記録されたものとSIMカードIDをチェックするでしょう。
もし、SIMカードIDが変更されたとわかったときは、
通知させるためにSMSメッセージを他の電話にプログラム的に送りたく
なるかもしれません。
この一連の流れは電話が盗まれたときにするものです。
大抵どろぼうは盗んだ電話から入っているSIMカードと自身のカードを
入れ替えるからです。
この場合、新しいSIMカードをいれた後、再起動されたときに、
アプリケーションはSIMカードIDを取得し、
以前に登録されたSIMカードIDと比べます。


その上SIMカードID、ほかの電話に関する有用な情報はIMEI
International Mobile Equipment Identityといいます。
IMEIナンバーはモバイルデバイスを判別するために使われる番号です。
デバイスのIMEIを知ることで、リカバリされた時に
デバイスの個体識別をしてくれます。
ここではIMEI情報をどのように取得するかを示します。
電話についての詳細情報を得るためには、
TelephonyManagerクラスのインスタンスを取得する必要があります。

package net.learn2develop.simcardid;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.Toast;

public class MainActivity extends Activity{

  @Override
  public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   TelephonyManager tm = (TelephonyManager)
      getSystemService(Context.TELEPHONY_SERVICE);
  }
}

SIMカードのIDを得るためには、TelephonyManagerオブジェクトの
getSystemServiceNumber()メソッドを使います。

//---get the SIM card ID---
String simID = tm.getSimSeriaNumber();
if (simID != null)   Toast.makeText(this, "SIM card ID: " + simID,
  Toast.LENGTH_LONG).show();

電話の電話番号を得るためには、TelephonyManagerオブジェクトの
getLine1Number()メソッドを使います。

//---get the phone number---
String telnumber = tm.getLine1Number();
if(telNumber != null)
  Toast.makeText(this, "Phone number: " + telNumber,
  Toast.LENGTH_LONG).show();

電話のIMEIナンバーを得るには、TelephonyManagerオブジェクトの
getDiviceId()メソッドを使います。

//---get the IMEI number---
String IMEI = tm.getDiviceId();
if(IMEI != null)
  Toast.makeText(this, "IMEI number : " + IMEI,
  Toast.LENGTH_LONG).show();

SIMカードID、電話番号、デバイスIDを取得するためには、
READ_PHONE_STATEパーミッションをAndroidManifest.xmlファイルに
加える必要があります。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
ホーム
便利堂ロゴ
inserted by FC2 system