如何在android中覆盖高优先级通知的静音/静音和振动
当收到通知时,无论设备处于何种状态,它都应鸣响。 如果设备处于正常工作状态,则发出通知 如果设备处于DND模式,则应绕过DND并发出通知声音 如果设备处于静默模式,则通知应覆盖静默状态并发出通知声音 同样,如果设备处于振动模式,则应覆盖系统设置并发出通知声音 我正在使用以下代码如何在android中覆盖高优先级通知的静音/静音和振动,android,firebase,kotlin,firebase-cloud-messaging,firebase-notifications,Android,Firebase,Kotlin,Firebase Cloud Messaging,Firebase Notifications,当收到通知时,无论设备处于何种状态,它都应鸣响。 如果设备处于正常工作状态,则发出通知 如果设备处于DND模式,则应绕过DND并发出通知声音 如果设备处于静默模式,则通知应覆盖静默状态并发出通知声音 同样,如果设备处于振动模式,则应覆盖系统设置并发出通知声音 我正在使用以下代码 val existingChannel = notificationManager.getNotificationChannel(id)
val existingChannel =
notificationManager.getNotificationChannel(id)
if (existingChannel != null) {
notificationManager.deleteNotificationChannel(id)
}
val mAudioManager =
context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
mAudioManager.setStreamVolume(
AudioManager.STREAM_RING,
50,
0
)
val channel = NotificationChannel(id, name, importance)
channel.description = description
channel.enableLights(true)
channel.setShowBadge(true)
channel.describeContents()
channel.setBypassDnd(dnd)
channel.lockscreenVisibility = Notification.VISIBILITY_PRIVATE
channel.lightColor = R.color.red
channel.enableVibration(true)
channel.setSound(
path,
AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build()
)
notificationManager.createNotificationChannel(channel)
}
但是,在静默状态下,它不会发出通知的声音。简单地说,你不应该绕过DND——如果它打开了,它打开是有原因的。如果您需要警报,即使是在DND模式下,也要先请求用户的许可,只有在他们说是的情况下,才能让您的应用程序触发警报。如果一个应用程序在会议中在我的设备上做了这件事,它将立即被取消。这是非常不友好的,当它沉默设备时发出一些声音,我会对一个应用程序感到愤怒,它在我的婚礼或一些重要会议上发出声音。我怀疑Android操作系统是否能让你以某种简单的方式(不是像手动播放警报声而不是通知声这样的解决办法)来覆盖它。简单地说,你不应该绕过DND——如果它打开了,它的打开是有原因的。如果您需要警报,即使是在DND模式下,也要先请求用户的许可,只有在他们说是的情况下,才能让您的应用程序触发警报。如果一个应用程序在会议中在我的设备上做了这件事,它将立即被取消。这是非常不友好的,当它沉默设备时发出一些声音,我会对一个应用程序感到愤怒,它在我的婚礼或一些重要会议上发出声音。我怀疑Android操作系统是否能让你以某种简单的方式覆盖这个问题(不是像手动播放警报声而不是通知声那样的解决办法)