android.telephonyパッケージのTelephonyManagerクラスとPhoneStateListenerクラスを使う。
・リスナーの定義
PhoneStateListenerのonCallStateChanged()メソッドをオーバーライドして、
イベント取得時の処理を記述する。
・リスナーの登録
TelephonyManagerクラスのlisten()メソッドを呼び出し、PhoneStateListenerを登録する。
なお、TeleohonyManagerは、getSystemService()で取得する。
(例)抜粋
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// リスナーの作成
PhoneStateListener listener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
String stateString = "なし";
switch (state) {
case TelephonyManager.CALL_STATE_IDLE: //待ち受け状態
stateString = "待ち状態";
break;
case TelephonyManager.CALL_STATE_OFFHOOK: //通話開始時
stateString = "通話開始 "+ incomingNumber;
break;
case TelephonyManager.CALL_STATE_RINGING: //着信時
stateString = "着信中"+ incomingNumber;
break;
}
text.append(String.format("\n電話: %s",stateString)); // TextView(text)に出力
}
};
// リスナーの登録
telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
}
なお、Android.manifest.xmlにpermissionの登録も必要
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
0 件のコメント:
コメントを投稿