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);