Я ищу способ использования push-уведомлений с наивысшим приоритетом для приложения Alarm. Если это возможно, я никогда не хочу, чтобы пользователь мог ни по своему выбору, ни по случайности, поэтому отключите звук будильника.
Что у меня сейчас есть, так это:
NotificationChannel channel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_MAX);
channel.setBypassDnd(true);
channel.setShowBadge(true);
channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
channel.enableLights(true);
channel.enableVibration(true);
channel.setLightColor(Color.GREEN);
if (soundPath != null) {
AudioAttributes att = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
channel.setSound(soundPath, att);
}
notificationManager.createNotificationChannel(channel);
Я использую NotificationManager.IMPORTANCE_MAX, который я нашел в другом примере - но похоже, что он больше не поддерживается, так как в следующей ссылке указано «Не используется»: https://developer.android.com/reference/android/app/NotificationManager#IMPORTANCE_MAX
setByPassDnd (true) - похоже, тоже не работает. Push-уведомление отображается, но звук отключен.
Мне кажется, что эта область не очень хорошо охвачена, хотя документации много, но большая ее часть устарела и до введения канала уведомлений.
РЕДАКТИРОВАТЬ Просто чтобы быть ясным - я хочу, чтобы наивысший уровень важности и приоритета, независимо от того, что еще делается по телефону :)