我的项目想要制作一个带有紧急消息的聊天功能。
这里有人曾经让设备处于静音或振动模式时保持通知声音吗? 怎么做 ?我使用 FCM 作为通知服务。 已将重要性和优先级设置为高。
我将此代码放在 FirebaseMessagingService
val notificationBuilder = NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.drawable.ic_doctor_apps)
.setContentTitle(fixedTitle)
.setContentText(fixedMessageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setCategory(NotificationCompat.CATEGORY_ALARM)
notificationManager.notify(666 /* ID of notification */, notificationBuilder.build())
我将代码文件放在我的应用程序中
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channel = NotificationChannel(
channelId,
"Channel human readable title",
NotificationManager.IMPORTANCE_HIGH
).apply {
description = "Description of this channel"
setSound(
Uri.parse(defaultSoundUri.toString()), AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ALARM)
.build())
}
notificationManager.createNotificationChannel(channel)
}
您必须使用 MediaPlayer 作为通知声音。
启动一个在显示通知时播放 MediaPlayer 的服务。
要停止声音,请停止通知的 PendingIntent 的 BroadCastReceiver 中的服务。
不要忘记在通知取消时停止声音。