Android 在API 25或更低版本上触发通知时无抬头/声音
在Android上使用时,通知仅在API级别26或更高的情况下才能正常工作Android 在API 25或更低版本上触发通知时无抬头/声音,android,android-notifications,android-support-library,Android,Android Notifications,Android Support Library,在Android上使用时,通知仅在API级别26或更高的情况下才能正常工作 我想要:在每一个可能的API级别(21+)上都有提示消息+声音的通知 我做到了:设置NotificationChannel,设置通道重要性和通知优先级,如 我收到:在API级别26+上有抬头+声音的通知,在API级别25或更低级别上有无抬头和无声音的通知 代码: val chan2 = NotificationChannel(SECONDARY_CHANNEL, getString(R.string.noti
- 我想要:在每一个可能的API级别(21+)上都有提示消息+声音的通知李>
- 我做到了:设置NotificationChannel,设置通道重要性和通知优先级,如
- 我收到:在API级别26+上有抬头+声音的通知,在API级别25或更低级别上有无抬头和无声音的通知
val chan2 = NotificationChannel(SECONDARY_CHANNEL,
getString(R.string.noti_channel_second), NotificationManager.IMPORTANCE_HIGH)
manager.createNotificationChannel(chan2)
fun getNotification2(title: String, body: String): NotificationCompat.Builder {
return NotificationCompat.Builder(applicationContext, SECONDARY_CHANNEL)
.setContentTitle(title)
.setContentText(body)
.setSmallIcon(smallIcon)
.setAutoCancel(true)
}
fun notifySecondaryChannel(id: Int, notification: NotificationCompat.Builder) {
notification.priority = NotificationCompat.PRIORITY_MAX
manager.notify(id, notification.build())
}
依赖项:
- 支持库版本:27.1.1
- 编译/目标sdk:27
- 梯度工具:3.1.3
完整代码(分叉和更新的谷歌示例)。可以通过以下方式播放声音:
builder.setDefaults(Notification.DEFAULT_SOUND) or
builder.setDefaults(Notification.DEFAULT_ALL)
或setSound的其中一个覆盖。对于exmaple:
public Notification.Builder setSound (Uri sound,
int streamType)
你试过builder.setDefaults(Notification.DEFAULT\u SOUND)或builder.setDefaults(Notification.DEFAULT\u ALL)吗?你成功了吗?@Elletlar是的,我成功了!
DEFAULT\u声音
和DEFAULT\u都能工作!为什么需要setDefaults
调用?我在文档中找不到任何关于这是强制性的内容。非常感谢(当你回答时,我会接受你的答案)不确定:设置默认值一直是一种标准做法。了解为什么新设备的这种行为发生了变化是件好事。