Существует ли в 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, когда другой человек поднимает трубку ... а не когда телефонный звонок заканчивается. Я полагаю, я должен делать что-то глупое или упустить что-то еще, что я могу проверить?