//来电状态监听
public class PhoneVVStateListener {
// 电话管理器
private TelephonyManager tm;
// 监听器对象
private MyListener listener;
private AudioManager ams = null;//音频管理器
public void start() {//开始监听
tm = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);
listener = new MyListener();
tm.listen(listener, android.telephony.PhoneStateListener.LISTEN_CALL_STATE);
initAudio();
}
public void stop() {//停止所有任务
tm.listen(listener, PhoneStateListener.LISTEN_NONE);
listener = null;
ams.abandonAudioFocus(mAudioFocusListener);
}
private Context context;
public PhoneVVStateListener(Context context) {
super();
this.context = context;
}
//微信,qq通话监听
private void initAudio() {
ams = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
ams.getMode();//这里getmode返回值为3时代表,接通qq或者微信电话
ams.requestAudioFocus(mAudioFocusListener, 1, 1);
}
private class MyListener extends android.telephony.PhoneStateListener {
// 当电话的呼叫状态发生变化的时候调用的方法
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
Log.e("TAG", "state" + state);
try {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE://空闲状态。
//继续播放音乐
Log.e("TAG", "空闲状态");
break;
case TelephonyManager.CALL_STATE_RINGING://铃响状态。
//暂停播放音乐
Log.e("TAG", "铃响状态");
break;
case TelephonyManager.CALL_STATE_OFFHOOK://通话状态
Log.e("TAG", "通话状态");
break;
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
private AudioManager.OnAudioFocusChangeListener mAudioFocusListener = new AudioManager.OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
Log.e("TAG", "focusChange----------" + focusChange);
if (focusChange == 1) {//视频语音挂断状态
Log.e("TAG", "电话挂断" + focusChange);
videoRenderAdapter.setLocalVideoEnable(roomStateControl.isVideo(), roomStateControl.isAudio());
} else {//微信或者qq语音视频接通状态
Log.e("TAG", "接听电话" + focusChange);
}
}
};
}
需要以下权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
忘了原作者是谁了。。。