【发布时间】:2017-11-28 07:08:52
【问题描述】:
我已将target build version 升级为27,因此需要实现notification channel。我正在启动一个前台service,它会在启动时显示一个通知。使用通知通道,它按预期工作,但始终为make sound。更改通知priority 没有任何效果。
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_MIN、IMPORTANCE_DEFAULT和IMPORTANCE_LOW,都在发出声音
【问题讨论】:
-
也许您可以检查该通道的设置,看看是否有声音。 Android O 能够以您想要的方式配置任何通知,更改开发人员设置的默认值。如果您修改了默认设置,请仔细检查。
-
有一个方法 setSound(Uri, Atrributes)。如果我调用 setSound(null,null) 则不会显示通知,如果我调用 setSound(null,attributes) 则通知会出现声音(默认通知声音)
-
以防万一,请记住,一旦第一次创建通知通道,您就无法再更改重要性。调用具有不同重要性的 createNotificationChannel 将无效。您需要清除应用数据或卸载应用才能删除频道并重新创建。
-
@jmart 就是这样 :) 如果您已经调用了具有特定优先级的 createNotificationChannel,则在不卸载应用程序的情况下无法更改它。就我而言,我以默认优先级运行应用程序。它正在发出声音,所以我将优先级降低到 LOW。但在我卸载该应用程序之前,从未应用过该设置。请发表您的评论作为答案,我会将其标记为已接受。谢谢
标签: android notification-channel