配置推送铃声
远程推送铃声是指收到来自推送通道的通知时播放的铃声。App 仅会在关闭状态下收到离线推送通知。默认使用手机系统设置的声音与振动提示状态。
在 App 退到后台且并未被系统回收的情况下不会触发远程推送。如果您集成 IMKit,仅会触发 IMKit 的本地通知,此时播放本地通知的铃声。如果您集成 IMLib,则没有本地通知。
融云目前支持为指定的消息类型配置自定义铃声,已适配小米推送、华为推送(仅支持海外)、FCM 推送。
选择消息类型
首先,请确认需要自定义铃声的消息内容类型唯一标识(Object Name)。如需查询,参见消息类型概述。
准备铃声资源文件
您需要将自定义声音资源的文件名已打包到应用程序中,用户接收该类型的推送消息时,自动读取设置的文件进行声音提醒。以下是各厂商对文件的路径要求:
- 小米推送:
android.resource://<package-name>/raw/<filename>
,其中<package-name>
需要替换为您的应用包名。<filename>
需要替换为不带后缀名的铃声文件名(存储的声音文件需要有扩展名,但是不要把扩展名写在 uri 中)。 - 华为推送:
/res/raw/
。 - FCM 推送:
/res/raw/
创建 Channel ID
创建自定义通知渠道。在控制台配置自定义推送铃声时需要配置该 Channel ID。
小米推送
Android 8.0 以上小米手机需要设置 Channel 后,才能自定义推送铃声。详见小米推送开发文档。Channel 一旦创建并发送了带有 Channel 的消息,设备上即会生成这个 Channel,不能删除也不能修改,所以请谨慎创建 Channel。
请参照小米文档创建 Channel ID:
- 使用小米开放平台上创建 Channel ID
- 使用小米服务端 API 创建 Channel ID
- 使用小米推送服务端 SDK 创建 Channel ID(此处仅提供小米 Push Server Java SDK 文档链接,其他语言请参照小米推送官方文档。)
华为推送
受华为平台限制,在华为平台设置数据处理位置为中国时,不支持自定义渠道,无法使用自定义铃声。其他地区注册 Channel ID 后支持设置自定义铃声。
App 端调用 Android SDK 接口,创建应用专有的推送通知渠道。可在 MainActivity 进行初始化,或者 Application 进行初始化,具体代码示例如下:
private void initNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//增加铃声渠道,可选择资源文件里面的音频文件
String channelIdKanong = "NotificationKanong";
String channelNameKanong = "铃声Kanong";
createNotificationChannel(channelIdKanong, channelNameKanong, importance, R.raw.kanong);
}
//创建通知渠道
@RequiresApi(api = Build.VERSION_CODES.O)
private void createNotificationChannel(String channelId, String channelName, int importance, int rawSource) {
NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
if (rawSource != 0) {
// 存储的声音文件需要有扩展名,但是不要把扩展名写在 uri 中
String uriStr = "android.resource://" + this.getPackageName() + "/" + rawSource;
Uri uri = Uri.parse(uriStr);
channel.setSound(uri, Notification.AUDIO_ATTRIBUTES_DEFAULT);
}
NotificationManager notificationManager = (NotificationManager) getSystemService(
NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(channel);
}
}
FCM 推送
详见 Android 官方文档通知渠道 和 FCM 推送开发文档。
配置消息类型对应的铃声
确认应用中已打包铃声资源文件后,您需要在融云控制台按消息类型、Channel ID 配置对应的自定义推送铃声。目前控制台已支持设置小米推送、华为推送、FCM 推送。每个推送厂商下最多设置 5 个自定义铃声,设置 30 分钟后生效。
-
访问融云控制台 自定义推送铃声 页面,在 小米、华为、FCM 标签下点击添加。
-
选择 ApplicationID,输入 Channel ID、消息类型名称、以及自定义铃声文件资源地址。以配置小米自定义推送铃声为例:
设置成功后,所有小米手机用户离线状态下接收的该类型消息,都会使用设置的 Channel ID 进行推送,提醒铃声为注册 Channel 时设置的自定义铃声。