Проблема с системными намерениями
-
19-09-2019 - |
Вопрос
У меня есть программа, которая имеет broadcast receiver
который прослушивает Phone_State, а затем отправляет определенное пользователем intent
.
Ну, моя проблема в том, что система также отправляет intent
(тот, который я пытаюсь заменить своей программой) .
Поэтому я пытаюсь найти способ CANCEL the systems intent
.
Я обнаружил, что если у меня есть таймер, просто подождите немного, тогда я могу отправить свой после систем, но это не очень хорошо, и иногда противоречит цели моей программы.
Кроме того, я не могу установить свою программу по умолчанию, потому что это не полноценная программа дозвона.Всего одно его действие.
Кто-нибудь, пожалуйста, помогите мне найти, как прослушивать и отменять систему intent/activity
....
Решение
Кто-нибудь, пожалуйста, помогите мне найти, как прослушивать и отменять систему намерение / активность
Вы не можете "отменить" действие, и точка.
Вы не можете заменить номеронабиратель.
Если система Intent
был отправлен через sendOrderedBroadcast()
, тогда вы можете позвонить abortBroadcast()
от вашего BroadcastReceiver
, и любые приемники с более низким приоритетом не получат широковещательную передачу.Однако у меня нет доказательств того, что ACTION_PHONE_STATE_CHANGED
это заказная трансляция, и я искренне надеюсь, что это не так.
Что бы вы ни пытались сделать, вероятно, это должно быть достигнуто с помощью изменений в вашей собственной пользовательской прошивке.