アプリ実行中に着信があった場合に、アプリを一時停止したり通話が終わったタイミングで再開したりする。
AndroidManifest.xml
1 |
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> |
Activity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
protected void onCreate(Bundle savedInstanceState) { TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); PhoneStateListener ps = new PhoneStateListener(){ @Override public void onCallStateChanged(int state, String number){ phoneCallEvent(state, number); } }; tm.listen(ps, PhoneStateListener.LISTEN_CALL_STATE); } private void phoneCallEvent(int state, String number){ switch(state){ case TelephonyManager.CALL_STATE_RINGING: //着信時の処理 break; case TelephonyManager.CALL_STATE_OFFHOOK: //通話時の処理 break; case TelephonyManager.CALL_STATE_IDLE: //待ちうけ時の処理 break; } } |
※ CALL_STATE_IDLEは着信がない時でも起動時に1度発生するので、着信→終了を判定するフラグ等が必要。