即使我没有设置声音,Android Oreo通知也会继续发出声音.在旧版本,完美的工作
作者:互联网
因此,我正在使我的应用程序与Oreo兼容并面临通知问题.
我根据文档添加了通知频道,除了通知在每个帖子上发出声音之外,一切都工作顺利,尝试将默认值设置为0.
我正在模拟器中测试我的应用程序,非常感谢任何帮助.
使用此代码创建频道
NotificationCompat.Builder builder = new NotificationCompat.Builder(PlayerService.this, "channel_01")
.setAutoCancel(false)
.setContentIntent(pendingIntent)
.setContent(viewsSmall)
.setCustomBigContentView(viewsExpanded)
.setDeleteIntent(pSwipeToDismiss);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setVisibility(Notification.VISIBILITY_PUBLIC);
}
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
builder.setPriority(Notification.PRIORITY_MAX);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
/* Create or update. */
NotificationChannel channel = new NotificationChannel("channel_01",
"Playback Notification",
NotificationManager.IMPORTANCE_DEFAULT);
mNotificationManager.createNotificationChannel(channel);
mBuilder.setChannelId("channel_01");
}
final Notification notification = builder.build();
startForeground(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE,notification);
解决方法:
查看通知频道设置(刷一下您的通知并按下它下方的设置图标,然后选择您的频道).这些设置是在您第一次创建频道时设置的,除非您在设备中手动执行此操作,否则不会进行修改(至少这是我从卸载和重新安装应用程序以查看默认情况下获得的设置的经验).
基本上,channel.setSound(null,null)仅在全新安装时创建通道时才有效.这可能是他们试图在official guide中解释的:
Attempting to create an existing notification channel with its original values performs no operation
如果您尝试按照该指南并设置NotificationManager.IMPORTANCE_HIGH并且未使用channel.setSound(null,null),则通道将获得重要级别Urgent Make声音并在屏幕上弹出默认声音.
标签:android-8-0-oreo,android 来源: https://codeday.me/bug/20191001/1837278.html