Android中是否有可靠的方法来检测来电和去电的开始和结束,以便执行暂停和播放音频等操作。
我做了以下事情:
telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
callEventListener = new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
if (state == TelephonyManager.CALL_STATE_IDLE){
//....
}
else if (state == TelephonyManager.CALL_STATE_RINGING){
//....
}
}
};
telephonyManager.listen(callEventListener, PhoneStateListener.LISTEN_CALL_STATE);
这似乎适用于来电,但对于去电,我会在对方接听时收到 CALL_STATE_IDLE ......而不是在电话结束时。我想我一定是在做一些愚蠢的事情,或者错过了我可以检查的其他事情?