Почему getCurrentInterruptionFilter BroadcastReceiver работает из быстрых настроек, а не из настроек? - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть следующий Broadcast Receiver для получения изменений в моем фильтре прерываний.

public class DndBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED);
        if (NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED.equals(intent.getAction())) {
            NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            assert mNotificationManager != null;
            if (mNotificationManager.getCurrentInterruptionFilter() == NotificationManager.INTERRUPTION_FILTER_NONE) {
                System.out.println("None");
            } else if (mNotificationManager.getCurrentInterruptionFilter() == NotificationManager.INTERRUPTION_FILTER_ALARMS) {
                System.out.println("Alarms");
            } else if (mNotificationManager.getCurrentInterruptionFilter() == NotificationManager.INTERRUPTION_FILTER_ALL) {
                System.out.println("All");
            } else if (mNotificationManager.getCurrentInterruptionFilter() == NotificationManager.INTERRUPTION_FILTER_PRIORITY) {
                System.out.println("Priority");
            } else if (mNotificationManager.getCurrentInterruptionFilter() == NotificationManager.INTERRUPTION_FILTER_UNKNOWN) {
                System.out.println("Unknown");
            }
        }
    }
}

Это работает очень хорошо, когда я переключаю кнопку DND «Быстрые настройки», но когда я включаю или выключаю DND с помощью кнопки на панели фактических настроек, никаких изменений не обнаружено.Есть ли очевидная причина, по которой это может быть?

1 Ответ

0 голосов
/ 27 декабря 2018

Хорошо, это потому, что мой Broadcast Receiver работает только тогда, когда мое приложение находится на переднем плане.Так что быстрые настройки работают, но не настройки, потому что я нахожусь на экране настроек.

...