Я новичок в разработке 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;
}
}