Я хочу наблюдать за конкретным SMS и обрабатывать его в приемнике, когда он придет. Затем я хочу «съесть его», чтобы он не пузырился вверх и не показывался пользователю (его нужно обрабатывать «молча»). Это возможно? Если да, то как?Возможно ли предотвратить намерение от намерения («съесть» намерение)?
ответ
Возможно ли это? Если да, то как?
Поскольку SMS вещание происходит с упорядоченной передачей, ваш BroadcastReceiver
можно назвать abortBroadcast()
, чтобы остановить его от обрабатываются с более низким приоритетом приемниками.
Here is a blog post с течением времени обсуждает заказываемые передачи. Here is a sample project основываясь на этом сообщении в блоге. Here is a sample SMS BroadcastReceiver
, который условно выполняет abortBroadcast()
.
I then want to "eat it" so that it doesn't bubble upwards and display to the user (it should be handled "silently")
А? Усилиями, которые вы регистрируете для получения , являются, которые обрабатываются бесшумно , если только вы не решите обработать его «громко».
EDIT
Кроме того, нет никакого способа, чтобы предотвратить другие приложения от ответа на SMS-сообщения. Подумайте о последствиях безопасности, позволяющих одному приложению контролировать, могут ли другие приложения прослушивать системные события ...
Хорошо, но SMS, как правило, все равно будет видеть пользователь, хотя я сначала «заглянул» в него, если не ошибаюсь. –
Вы ищете конструкцию службы в Android. Он предназначен для запуска чего-то, не требуя интерфейса (например, Activity).
BroadcastReceiver - это дополнительная функциональность, которую вы должны исследовать, чтобы поймать SMS-событие.
Я рассмотрел использование Сервиса, но BroadcastReceiver - это то, что я использую, и должен работать просто денди. –
Да, он может быть прерван методом abortBroadcast(), и если вы установите приоритет IntentFilter на 1000 (самый высокий приоритет), то этот ресивер получит трансляцию перед системой.
** Вы должны изучить андроид-жаргон, чтобы мы могли лучше/более легко понять ваш вопрос. ** Если я правильно понимаю, вы подразумеваете молча, «поймав», что смс-сообщение, когда оно поступит, и ** УДАЛИТЬ ** он из базы данных, так что он не отображается как уведомление.? Это верно? – JoxTraex
Да, я не хочу, чтобы пользователь видел сообщение, если оно соответствует критериям, которые я ищу (то есть принадлежит моему приложению); конечно, если это не будет перехвачено моим приложением, тогда я хочу «передать его по линии». –