Зачем?
Ну допустим я хочу отследить длительность звонка используя PhoneListener.
Если я правильно помню доку, то там не рекомендуется выполнять долгие операции в ресивере
Ну вот я и интересуюсь))) как это можно обойти. Получается я знаю когда начинается звонок и когда заканчивается. Но как измерить время между этими действиями?
Вот выдержка из доки: По этой причине не следует запускать длительные фоновые потоки с широковещательного приемника. После onReceive()система может завершить процесс в любое время, чтобы освободить память, и при этом она завершает порожденный поток, работающий в процессе. Чтобы этого избежать, следует либо вызвать goAsync()(если вы хотите еще немного времени на обработку трансляции в фоновом потоке), либо запланировать a JobServiceот получателя с помощью JobScheduler, чтобы система знала, что процесс продолжает выполнять активную работу. Дополнительные сведения см. в разделе Процессы и жизненный цикл приложения .
Ну это я знаю. Может как то можно получать список звонков с длительностью разговора другим способом?
Read call log???
Если нужно список звонков с их длительностью, то просто contentResolver’ом получить, там есть поле duration
Мне надо чтоб при завершении звонка Я смог получить номер телефона и время сколько продлился разговор.
Обсуждают сегодня