Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中覆盖高优先级通知的静音/静音和振动_Android_Firebase_Kotlin_Firebase Cloud Messaging_Firebase Notifications - Fatal编程技术网

如何在android中覆盖高优先级通知的静音/静音和振动

如何在android中覆盖高优先级通知的静音/静音和振动,android,firebase,kotlin,firebase-cloud-messaging,firebase-notifications,Android,Firebase,Kotlin,Firebase Cloud Messaging,Firebase Notifications,当收到通知时,无论设备处于何种状态,它都应鸣响。 如果设备处于正常工作状态,则发出通知 如果设备处于DND模式,则应绕过DND并发出通知声音 如果设备处于静默模式,则通知应覆盖静默状态并发出通知声音 同样,如果设备处于振动模式,则应覆盖系统设置并发出通知声音 我正在使用以下代码 val existingChannel = notificationManager.getNotificationChannel(id)

当收到通知时,无论设备处于何种状态,它都应鸣响。 如果设备处于正常工作状态,则发出通知 如果设备处于DND模式,则应绕过DND并发出通知声音 如果设备处于静默模式,则通知应覆盖静默状态并发出通知声音 同样,如果设备处于振动模式,则应覆盖系统设置并发出通知声音

我正在使用以下代码

            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操作系统是否能让你以某种简单的方式覆盖这个问题(不是像手动播放警报声而不是通知声那样的解决办法)