Можем ли мы переопределить DND и определить настройки уведомлений? - PullRequest
0 голосов
/ 31 мая 2019

Я занимаюсь разработкой приложения, которое должно переопределить DND и отображать уведомления со звуком тревоги.Не могли бы вы предложить, возможно ли это?

Я использовал NotificationChannel для переопределения DND с помощью canBypassDnd (), но он возвращает все ложные значения, даже если я включил setBypassDnd (true).

Также я добавил экран настроек уведомлений, могу ли я переключить режим DND?

enter image description here

Ниже приведен мой код для уведомлений и DND.

ВКЛ. Код DND

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALARMS);
        }

Код уведомления

 private int notificationIndex = 0;
   NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Dream",
                    NotificationManager.IMPORTANCE_HIGH);

            notificationChannel.setDescription("");
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.enableVibration(true);
            **notificationChannel.setBypassDnd(true);**
            mNotificationManager.createNotificationChannel(notificationChannel);
        }

        **if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = mNotificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_ID);
            channel.canBypassDnd();
        }**

        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);

        notificationBuilder.setAutoCancel(true)
                .setColor(ContextCompat.getColor(this, R.color.colorAccent))
                .setContentTitle(getString(R.string.app_name))
                .setContentText("Test Notification")
                .setDefaults(Notification.DEFAULT_ALL)
                .setWhen(System.currentTimeMillis())
                .setCategory(NotificationCompat.CATEGORY_ALARM)
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setAutoCancel(true);

        mNotificationManager.notify(notificationIndex, notificationBuilder.build());
        notificationIndex++;

Я хочу отображать уведомление со звуком, даже если DND включен.

...