Как слушать с PhoneStateListener на двойной сим? - PullRequest
0 голосов
/ 17 мая 2018

Я новичок в разработке Android.пытаясь сделать простой регистратор вызовов.

Следующий PhoneStateListner отлично работает для sim2 входящих и исходящих вызовов.но состояние вызова CALL_STATE_IDLE вызывается сразу после CALL_STATE_OFFHOOK, когда на SIM1 происходит событие входящего / исходящего вызова.

AtomicBoolean isRecording = new AtomicBoolean(); 

public void onCallStateChanged(int state, String incomingNumber) {
        super.onCallStateChanged(state, incomingNumber);

        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE: // Idle... no call
                if (isRecording.get()) {
                    RecordCallService.stopRecording(context);
                    phoneCall = null;
                    isRecording.set(false);
                }
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK: // Call answered
                if(!isRecording.get())
                    RecordCallService.startRecording(context, phoneCall);
                }
                break;
            case TelephonyManager.CALL_STATE_RINGING: 
                if (null == phoneCall)
                    phoneCall = new CallLog();
                }
                break;
        }

    }
...