Я пытаюсь получить событие при ответе на звонок. Я искал и обнаружил, что для этого следует использовать CALL_STATE_OFFHOOK. Однако это не работает. Это состояние вызывается, как только набирается номер. Это мой код:
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (TelephonyManager.CALL_STATE_RINGING == state) {
// phone ringing
// But this gets called as soon as number is dialled.
endCall();
}
if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
// active
phoneCalling = true;
new CountDownTimer(MyApplication.GetData().getDuration()*1000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
endCall();
}
}.start();
}
// When the call ends launch the main activity again
if (TelephonyManager.CALL_STATE_IDLE == state) {
MyApplication.GetData().setIsReturnedFromCall(false);
if (phoneCalling) {
phoneCalling = false;
}
}
Подробнее здесь: https://stackoverflow.com/questions/265 ... en-dialled