Нет звука в канале уведомлений для целевого API 26

Я создал канал уведомлений следующим образом:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
        if (notificationManager == null)
            notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationChannel channel = notificationManager.getNotificationChannel(notificationChannelId);
        if (channel == null) {
            channel = new NotificationChannel(notificationChannelId, channelName, importance);
            channel.enableLights(true);
            channel.enableVibration(true);

            if (sound == null)
                sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

            AudioAttributes audioAttributes = new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                    .build();
            channel.setSound(sound, audioAttributes);
            notificationManager.createNotificationChannel(channel);
        }
        builder = new NotificationCompat.Builder(context, notificationChannelId);
    }

Когда я запускаю его в эмуляторе с API 26, я получаю уведомления без звука. В логах вижу

W/ Уведомление: использование типов потоков не рекомендуется для операций, отличных от регулировки громкости. Смотрите документацию по setSound(), чтобы узнать, что использовать вместо этого с android.media.AudioAttributes, чтобы определить ваш вариант использования при воспроизведении.

это странно, так как я уже использую каналы уведомлений. Я отследил место, где написано и нашел ctor NotificationCompatApi26.Builder, где вызывается setSound

new Notification.Builder(context, channelId).setSound(n.sound, n.audioStreamType)

После этого я проиграл. Есть идеи, почему у меня нет звука в уведомлении?

Компиляция и целевой SDK оба 26.

0 ответов

Другие вопросы по тегам