来电状态监听
public class MyService extends Service {
private MediaRecorder mRecorder;
private String num;
@Override
public void onCreate() {
super.onCreate();
TelephonyManager manager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); // 获取电话管理器
manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE); // 监听电话状态
}
private class MyPhoneStateListener extends PhoneStateListener { // 电话状态监听器
public void onCallStateChanged(int state, String incomingNumber) { // 在电话状态改变时执行
switch (state) {
case TelephonyManager.CALL_STATE_RINGING: // 振铃
System.out.println("来电话了");
num = incomingNumber;//得到来电号码
break;
case TelephonyManager.CALL_STATE_OFFHOOK: // 摘机
System.out.println("开始通话");
start();
break;
case TelephonyManager.CALL_STATE_IDLE: // 空闲
System.out.println("挂断电话");
stop();
break;
}
}
}
public void onDestroy() {
tm.listen(listener, PhoneStateListener.LISTEN_NONE);// 取消监听
listener = null;
}