Перехватите экран входящих вызовов Android OS и замените - программирование
Подтвердить что ты не робот

Перехватите экран входящих вызовов Android OS и замените

Я хотел бы перехватить экран входящих вызовов Android OS и заменить его экраном для входящих вызовов. Однако для этого нет API, но я точно знаю, что это возможно, поскольку это было реализовано 4 различными компаниями; Компании, о которых я говорю, это Adaptix (Yellix), Vringo, WhitePages Caller ID и другие. Все они чисто заменяют экран входящего вызова ОС со своим экраном входящих вызовов при поступлении вызова (без задержки, без сбоев, он всегда работает).

Мне удалось найти частичное решение, но это решение нестабильно, поскольку иногда оно показывает экран входящего вызова приложения, а иногда и экран входящего вызова ОС. каждый из них реагирует по-разному.

У вас есть идея?

4b9b3361

Ответ 1

Вам нужно будет наложить собственный экран с помощью элемента управления (возможно, диалогового окна), когда вы получите андроид .intent.action.PHONE_STATE как звонок.

Вам необходимо зарегистрировать BroadcastReceiver для действия android.intent.action.PHONE_STATE.

У принимающего намерения будет переменная TelephonyManager.EXTRA_STATE_RINGING, которая будет иметь текущее состояние.

Сообщите мне!

Ответ 2

Вам нужно перехватить широковещательную рассылку android.intent.action.PHONE_STATE с наивысшим возможным приоритетом, а затем, если в вашем BroadcastReceiver.onReceive() вы отмените трансляцию через BroadcastReceiver.abortBroadcast(), вы сможете остановить отображение экрана входящих вызовов по умолчанию, поскольку приложение по умолчанию выиграло ' t принимать входящие вызовы. После этого вы можете показать свой собственный Activity.

По крайней мере, одна и та же стратегия работает с входящими SMS '- я делал так, как описано выше.

Ответ 3

Думаю, вы могли бы сделать 95% работы. Проблема вашего экрана, не отображающаяся, но входящий вызов системы может быть решена следующим образом:

Может ли мероприятие получать намерение неупорядоченного вещания (входящего вызова) перед приемником по умолчанию системы?