Как узнать время начала разговора при исходящем звонке?

Я хочу регистрировать свои звонки в приложении. Я работаю с Telephonymanager и onCallStateChanged в широковещательном приемнике.

Итак, у нас есть три состояния:

TelephonyManager.CALL_STATE_RINGING
TelephonyManager.CALL_STATE_OFFHOOK
TelephonyManager.CALL_STATE_IDLE

Когда я начинаю исходящий вызов, вызывается onCallStateChanged с CALL_STATE_OFFHOOK. Тогда жду ответа. Когда человек берет трубку, разговор начинается, но onCallStateChanged не срабатывает ни в одном из этих 3-х состояний. Как узнать точное время, когда мы начнем говорить?


person Big Coach    schedule 16.08.2017    source источник
comment
Нет никакого события, которое запускается, когда человек фактически поднимает трубку. В настоящее время невозможно только с этими событиями.   -  person M.Waqas Pervez    schedule 16.08.2017


Ответы (1)


Это невозможно, если ваше приложение не является телефонным приложением по умолчанию на устройстве.

Если ваше приложение является приложением для телефона, и пользователь вручную установил его в качестве приложения для телефона по умолчанию, и ваше приложение также реализует InCallService для обработки экрана входящего вызова.

Вы получите в своей InCallService реализации объект типа Call, который содержит такую ​​информацию (так что вы можете переключить пользовательский интерфейс на экран, когда такое событие произойдет.

Невозможно получить объект Call, если вы не являетесь приложением для телефона по умолчанию IMHO.

person marmor    schedule 21.08.2017