通知通道在奥利奥中播放错误的声音

2024-02-02

我在运行 Android Oreo 的设备中遇到了NotificationChannel 声音的奇怪问题。

假设我的项目原始目录中有两个声音文件:

a.mp3
c.mp3

然后,在第一次安装应用程序时,我使用它们的 uri(例如)将这些声音分配给不同的通知通道:

android.resource://myapp/2131558403 (for sound a.mp3)
android.resource://myapp/2131558404 (for sound c.mp3)

此时一切都按预期进行。 当我开始添加新声音(在前面或中间)时出现问题:

a.mp3
B.mp3 <- new file
c.mp3

然后文件的资源 ID 会相应更改:

android.resource://myapp/2131558403 (for sound a.mp3)
android.resource://myapp/2131558404 (for sound B.mp3)
android.resource://myapp/2131558405 (for sound c.mp3)

因此,此时我的第二个通知通道开始播放 B.mp3 声音文件而不是 c.mp3,因为它是使用 android.resource://myapp/ 初始化的2131558404 uri.

使用新声音文件编译应用程序后,c.mp3 的资源 ID 已发生变化。

那么这个问题的解决方案是什么,因为我无法在创建通知通道后修改它。

最明显的解决方案是不要在旧文件中间添加新文件,但新文件可能会被遗忘。

也许我可以删除旧频道并使用新 ID 重新添加它?

或者有没有办法让原始文件具有恒定的资源ID?


通知通道是持久的。进行此类更改时,您需要为通道提供不同的 ID 才能使更改生效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通知通道在奥利奥中播放错误的声音 的相关文章

随机推荐