目标API 26的通知通道中无声音

时间:2018-11-25 12:34:18

标签: android-notifications android-developer-api

我以以下方式创建了通知渠道:

    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来限定您的   播放用例

这很奇怪,因为我已经使用了通知渠道。我跟踪了它的编写位置,并找到了名为setSound的ctor NotificationCompatApi26.Builder

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

我输了。知道为什么我的通知没有声音吗?

编译和目标SDK均为26。

0 个答案:

没有答案