如何自定义Android推送提示音,让你的应用与众不同 admin 2023-02-16 14:42:02 篇首语:本文由小编为大家整理,主要介绍了如何自定义Android推送提示音,让你的应用与众不同相关的知识,希望对你有一定的参考价值。 前言 我们处在一个信息爆炸的时代,各种通知鱼龙混杂,如何让用户快速识别不同的通知,提高应用活跃度?此时,自定义铃声的使用,就恰好解决用户和开发者共同的痛点。试想一下,收款类应用,推送铃声是金币哗啦啦的音乐;网课类应用,推送铃声是一个上课铃的音乐;视频类应用,推送铃声是用户关注的偶像声音,等等。与众不同的铃声也许是让用户记住并喜欢上某个应用的一个好方法。 本文通过简单易懂的场景,讲解如何在华为推送中使用自定义铃声,帮助开发者提高通知消息的曝光。 基本思路 设置华为推送通知的铃声,主要分为2个角度: 1、设置华为推送渠道(服务与通讯)的默认铃声,如右图①适用于通知类型比较单一的App,开发成本低 2、设置并使用自定义渠道的铃声,如右图②适用于包含多种不同类型通知的App,开发成本稍高 开发步骤 一、设置华为推送渠道(服务与通讯)的默认铃声 受限说明:default_sound和sound字段需要EMUI 9.1.0版本(及以上),推送服务应用9.1.1版本(及以上) Tips:打开设置-应用-应用管理,搜索“推送服务”即可查看应用版本信息 1、客户端配置 1)仅支持在应用的/res/raw路径[Z1] [L(C2] 下,放置需要使用的铃声; 2)支持的文件格式包括MP3、WAV、MPEG等。 举例:将待使用的bell.mp3文件放在/res/raw路径下。 2、服务端配置 1)构造普通下行消息请求 2)请求中,设置importance为NORMAL,即设置消息为服务与通讯类消息 3)请求中,设置default_sound为false,即设置使用sound自定义铃声 4)请求中,设置sound为客户端存储的自定义铃声。 举例:对于客户端bell.mp3文件,sound字段设置为“/raw/bell” { "validate_only": false, "message": { "android": { "notification": { "importance": "NORMAL", "title": "测试铃声", "body": "此通知使用自定义铃声bell", "click_action": { "type": 3 }, "default_sound": false, "sound": "/raw/bell" } }, "token": [ "xxx" ] }} 3、效果展示 自定义铃声效果展示 二、设置并使用自定义渠道的铃声 受限说明:自定义通知渠道需要EMUI 10.0.0版本(及以上),推送服务应用10.0.0版本(及以上) 1、客户端配置 1)准备铃声文件,放入/assets或/res/raw目录下 举例:将待使用的bell.mp3文件放在/res/raw路径下。 2)新建通知渠道(注意:通知渠道需要设置NotificationManager.IMPORTANCE_DEFAULT以上级别,才能设置铃声) 3)设置渠道铃声 举例:新建通知渠道test,并设置渠道铃声/res/raw/bell.mp3 createNotificationChannel("test", "自定义渠道1", NotificationManager.IMPORTANCE_DEFAULT); private String createNotificationChannel(String channelID, String channelNAME, int level) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); NotificationChannel channel = new NotificationChannel(channelID, channelNAME, level); channel.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bell), Notification.AUDIO_ATTRIBUTES_DEFAULT); manager.createNotificationChannel(channel); return channelID; } else { return ""; } } 2、服务端配置 1)构造普通下行消息请求 2)请求中,设置importance为NORMAL,即设置消息为服务与通讯类消息 3)请求中,设置channel_id为客户端新建的渠道id,即指定消息要展示在哪个通知渠道上 举例:对于客户端新建的test渠道,channel_id字段设置为”test” { "validate_only": false, "message": { "android": { "notification": { "importance": "NORMAL", "title": "测试铃声", "body": "此通知使用客户端自建test渠道的铃声", "click_action": { "type": 3 }, "channel_id": "test" } }, "token": [ "xxx" ] }} 3、效果展示 自定义渠道铃声效果展示 注意事项 1、应用通知设置中的铃声设置的优先级最高。即如果用户手动修改了渠道的通知铃声,则以用户的设定为准 2、下行消息中各个字段对铃声的影响(不考虑消息智能分类) push渠道状态[Z1] [L(C2] (渠道是否已创建) default_sound sound importance (EMUI 10.0.0版本及以上) channel_id 铃声 任意 任意值 任意值 LOW 任意值 无 未创建 true 任意值 NORMAL 无 系统默认铃声 未创建 false “/raw/bell” NORMAL 无 bell.mp3 未创建 false 无 NORMAL 无 系统默认铃声 任意 任意值 任意值 NORMAL “test” test渠道铃声 已创建 任意值 任意值 NORMAL 无 原有渠道铃声,不会修改 已创建 任意值 任意值 NORMAL “test” 原有test渠道铃声,不会修改 >>访问华为推送服务官网,了解更多相关内容 >>获取华为推送服务开发指导文档 >>华为HMS Core官方论坛 >>华为推送服务开源仓库地址:GitHub、Gitee 点击右上角头像右方的关注,第一时间了解华为移动服务最新技术~ 以上是关于如何自定义Android推送提示音,让你的应用与众不同的主要内容,如果未能解决你的问题,请参考以下文章 hadoop之Hbase简介 Sketch 学习笔记 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号