Android自定义通知声音在Redmi和Vivo等中国手机上不起作用

时间:2019-09-23 14:39:29

标签: android kotlin notifications android-notifications

在我的应用中,我创建了一个频道来显示带有自定义声音的自定义通知。在大多数手机上都可以正常工作。但是我在2种不同类型的手机上遇到了2种意外行为。

在某些Redmi手机上,我遇到这种情况

创建了通知频道,但该频道的声音自动关闭。我必须手动去打开该频道的声音。我不希望手动完成此操作。

在Vivo手机上,我面临以下行为:

1)通知通道已创建,但播放默认的通知声音,而不是我设置的自定义声音

2)有时它不播放任何声音

3)可以保持固定状态的静态通知可以轻扫通知栏。

反正我可以通过编程方式解决这些问题吗?

这是我的参考代码:

val attributes: AudioAttributes? = AudioAttributes.Builder()
    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
    .setUsage(AudioAttributes.USAGE_ALARM)
    .build()
val sound: Uri? = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + applicationContext.packageName + "/" + R.raw.notif)

val vibrationPattern = longArrayOf(1000, 1000, 1000, 1000, 1000, 1000)

val noisyChannel = NotificationChannel("NOISY_ID", "Noisy Channel", NotificationManager.IMPORTANCE_HIGH)
noisyChannel.enableLights(true)
noisyChannel.enableVibration(true)
noisyChannel.lightColor = Color.RED
noisyChannel.setShowBadge(true)
noisyChannel.setSound(sound, attributes)
noisyChannel.setBypassDnd(true)
noisyChannel.enableVibration(true)
noisyChannel.lockscreenVisibility = VISIBILITY_PUBLIC
noisyChannel.setShowBadge(true)
noisyChannel.vibrationPattern = vibrationPattern
notificationManager.createNotificationChannel(noisyChannel)

0 个答案:

没有答案