Приемник Android-трансляции ACTION_NEW_OUTGOING_CALL не работает, если процесс приложения еще не запущен - PullRequest
0 голосов
/ 28 февраля 2019

Пишу небольшое приложение для регистрации исходящих звонков.Он основан на намерении вещания ACTION_NEW_OUTGOING_CALL.У меня есть получатель, зарегистрированный в манифесте, и он работает нормально, когда мой процесс приложения жив.Однако, если я перезагружаю устройство или процесс был убит в фоновом режиме и без перезапуска процесса, приемник не работает.

Приложение запросило необходимые разрешения: <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> И все они предоставлены.

И получатель зарегистрирован следующим образом: <receiver android:name=".OutgoingCallReceiver" > <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> Я также проверил, что ACTION_NEW_OUTGOING_CALL находится в списке "Неявные широковещательные исключения" , что означает, что зарегистрированный получатель манифеста все еще может быть вызван.Однако, хотя он работает нормально, когда я запускаю процесс приложения, получатель не может быть вызван, если процесс приложения не активен.

Я видел подобный вопрос здесь , но это не мойcase.

Начиная с Android Pie, система становится очень агрессивной в уничтожении фоновых процессов.Особенно на телефоне Google Pixel3, почти все сторонние приложения убиваются, когда вы переключаетесь на приложение камеры и возвращаетесь обратно.

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

Любая идея приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...