音声の一時停止や再生などを行うために、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 を取得します。私は何かばかげたことをしているに違いないと思いますか、それともチェックできる何かを見逃していますか?