【问题标题】:Android custom notification sound in system app settings系统应用设置中的Android自定义通知声音
【发布时间】:2019-05-21 17:50:22
【问题描述】:

我曾经为res/raw 中保存的通知使用自定义声音。要求不允许其他应用程序使用此声音。

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

现在我进入了下一个级别,我需要在应用处于后台时为 Firebase 云消息传递提供这种声音。

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

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

【问题讨论】:

    标签: android firebase push-notification firebase-cloud-messaging


    【解决方案1】:

    首先,您需要发送有效负载通知,以免 Android 本身自动显示它们。阅读this great post 了解更多信息。

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

    为此,您需要像这样从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;
    

    【讨论】:

    • 感谢您的回答,但这正是我在 android 8 之前处理通知的方式。使用通知通道,我需要在创建通知通道时设置通知声音,之后无法在代码中更改。它可以仅从系统应用程序设置中更改。但是,我保存在应用程序存储中的自定义声音没有显示在那里。我还更新了我的问题,因为我忘了提到我需要使用高优先级消息,所以您提供的链接可能对我没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多