我正在开发一款VoIP应用程序,当接到电话时,至少在三星的A20e和运行在安卓11上的三星A71设备上,铃声是听不见的。不幸的是,这一信息来自少数用户,他们说他们经历了这个问题,而且这个问题并没有出现在我可以访问的所有手机上,所以我无法亲自查看日志。
要获得铃声URI,使用以下代码:
val uri = RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE)然后在通知通道上使用该URI:
val attributes = AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build()
notificationChannel.setSound(uri, attributes)在setSound的方法NotificationCompat.Builder中再次使用URI来生成实际通知。
我试图在仿真器上重现这个问题,并在setUsage和setContentType中更改了很多值,但似乎没有什么影响。我还在每次更改时重新安装了该应用程序,以确保创建一个新的通知通道。
然后我在网上的某个地方读到,铃声在仿真器上是不起作用的。然而,我确实有一个模拟器,它的铃声实际上是可以听到的,所以我不太确定这是真的,至少不是每个配置都是这样。
最后,我应该补充一点,当我添加以下行时,铃声也不会对我的原始模拟器保持沉默:
RingtoneManager.getRingtone(context, uri).play()但是,我实际上无法使用这段代码,因为我需要将铃声附加到通知(通道)。
有没有人有过类似问题的经验?我的通知或通知通道的设置是否有问题?这仅仅是三星的问题吗?我希望有人能帮我。
发布于 2022-03-03 09:54:43
我自己回答问题。事实证明,客户对问题的描述不够透彻,当他向我们提供更多信息时,这是一个很容易解决的问题。当手机的通知音量打开,手机的铃声音量关闭时,铃声就会被听到。然而,当通知音量关闭,铃声音量打开时,铃声就不会被听到。所以这两个人换了个地方,用AudioAttributes.USAGE_NOTIFICATION_RINGTONE代替了AudioAttributes.USAGE_NOTIFICATION_RINGTONE,解决了问题。
https://stackoverflow.com/questions/70840648
复制相似问题