首页 > 解决方案 > 系统应用设置中的Android自定义通知声音

问题描述

我曾经使用自定义声音保存在res/raw. 要求不允许其他应用程序使用此声音。

使用 Android 8 通知通道,我能够解决将用户从系统通知首选项重定向到应用首选项的方法,从那里我可以在其他 android 提供的声音中显示自定义声音。当用户更改通知声音时,会创建新的通知通道。

现在我进入了一个新的水平,我需要在应用程序处于后台时为 Firebase 云消息传递提供这种声音。

更新:我需要依赖高优先级消息和通知托盘处理程序,因此数据消息(可能)不是我的解决方案。

长话短说:我可以从系统应用程序设置中为我的应用程序(包括 Firebase 推送通知)提供自定义声音

标签: androidfirebasepush-notificationfirebase-cloud-messaging

解决方案


首先,您需要发送有效负载通知,以便它们不会被 Android 本身自动显示。阅读这篇很棒的文章以获取更多信息。

设置自定义通知接收后,您只需对其应用声音即可。

为此,您需要res/raw/像这样获取文件:

notification.sound = Uri.parse("android.resource://com.my.package/" + R.raw.notification_sound);

其中 com.my.package 需要替换为您的包名称。如果这对您不起作用,请尝试设置通知默认值:

notification.defaults = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE;

推荐阅读