通知渠道在Android 8.0中总是会发出声音

4

我已将目标构建版本升级到27,因此需要实现通知渠道。我正在启动一个前台服务,当它启动时会显示一个通知。使用通知渠道时,它按预期工作,但总是会发出声音。更改通知优先级没有任何效果。

if(Build.VERSION.SDK_INT >= 26) {
    NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID,
            CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW);
    mNotificationManager.createNotificationChannel(notificationChannel);
    notification = new Notification.Builder(this,CHANNEL_ID)
            .setContentTitle("My App")
            .setContentText(status)
            .setSmallIcon(R.drawable.ic_stat_notify)
            .setContentIntent(pendingIntent)
            .build();
}

我已经检查了 IMPORTANCE_MINIMPORTANCE_DEFAULTIMPORTANCE_LOW,它们都会发出声音。

也许您可以检查该频道的设置,看看是否有声音。Android O 可以配置任何通知,按您的意愿更改开发人员设置的默认值。请再次确认一下,以防您修改了默认设置。 - Iulian Popescu
有一个方法 setSound(Uri, Attributes)。如果我调用 setSound(null,null),那么通知不会显示,如果我调用 setSound(null,attributes),则通知将出现带有声音(默认通知声音)。 - shantanu
1
请记住,一旦通知渠道第一次创建后,您将无法再更改其重要性。使用不同的重要性调用createNotificationChannel将没有任何效果。您需要清除应用程序数据或卸载应用程序才能删除该通道并重新创建它。 - jmart
1
@jmart 是这样的 :) 如果您已经使用特定优先级调用了createNotificationChannel,那么您无法在不卸载应用程序的情况下更改它。在我的情况下,我使用默认优先级运行应用程序。它会发出声音,所以我将优先级降低到LOW。但是,该设置从未应用,直到我卸载了该应用程序。请将您的评论发布为答案,我会将其标记为接受。谢谢 - shantanu
1个回答

6

一旦通知渠道被创建,就无法再更改其重要性。

如果需要删除该通知渠道并以不同的重要性级别重新创建,则需要清除应用程序数据或卸载该应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接