SMS Получено в моем приложении SMS и в Hangouts, хотя я вызываю abortBroadcast()
У меня есть приложение для блокировки SMS, которое разработало приложение Android, которое хорошо работало для захвата всех спамов, пока Google не обновил приложение Hangouts для работы с SMS-сообщениями.
Проблема: SMS получает захват как моим приложением, так и видеовстречами! Несмотря на то, что сообщение заблокировано моим приложением и хранится в его частной базе данных, оно также присутствует в приложении подключений и, следовательно, в приложении обмена мгновенными сообщениями.
Кажется, что abortBroadcast()
больше не работает. Все работает отлично до обновления Hangouts.
Я также пробовал играть с android:priority
, но тщетно.
Ответы
Ответ 1
В Hangouts используется максимально возможный приоритет (999 на Документы Intent-Filter), и поэтому вы не можете его прервать на < 4.4 выпусках. В 4.4+ только SMS-приложение по умолчанию (сообщение в блоге с подробностями) может получать SMS-уведомления - пользователям нужно будет настроить приложение в качестве стандартного SMS-приложения для вашего приложения, чтобы оно функционировало правильно (хотя оно должно функционировать так, как ожидается, если это произойдет).
Ответ 2
Когда вы регистрируете приемник, установите приоритет фильтра на INTEGER.MAX_VALUE.
Теперь abortBroadcast() будет работать;
receiver = new HightPrioritySmsReceiver();
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
filter.setPriority(Integer.MAX_VALUE);
registerReceiver(receiver, filter);