在音视频通话的场景下,还可以使用自定义推送铃声,让推送的铃声提醒更明显持续时间更长。请注意,自定义铃声,目前只支持华为。关于自定义铃声支持,请详见文档:

如果想在android端的app上收到推送时播放自定义的铃声,需要在消息的扩展中增加如下的字段:

"ext":{
"em_apns_ext":{
//对于华为EMUI 10以上系统需要设置以下参数,否则容易被华为通知智能分类分到营销通知渠道,
//从而不能播放自定义铃声
"em_push_name":"标题",
"em_push_content":"内容",
},
"em_push_ext":{
"type":"call"
},
"em_android_push_ext":{
//指定自定义渠道
"em_push_channel_id":"Channel id",
"em_push_sound":"/raw/appsound"
}
}

其中声音文件(em_push_sound key的值)都存放在Android设备上应用的“/res/raw/**”目录下。

注意事项:

(1)目前只支持华为EMUI 10以上的系统。

(2)华为EMUI 10以上自定义推送铃声,需要设置channel_id,通过em_push_channel_id进行设置。

需要注意的是,即使指定了渠道标识(channel id),消息最终能否展示在应用渠道上,受用户终端上该渠道是否创建以及渠道的开关策略控制。

a、如果本地已经创建该渠道,且已设置了对应的自定义铃声,收到推送消息时会播放自定义铃声。

b、如果本地没有创建指定的渠道,则华为会对消息进行智能分类,根据消息设置的级别及智能分类的结果,两者取低,根据级别下发到服务提醒,普通通知与营销通知三个中的一个通知渠道,如果该通知渠道之前没有创建且不是营销通知,则设置自定义铃声有效。

(3)对于华为EMUI 10以上系统,需要添加em_push_name和em_push_content参数,否则容易被华为通知智能分类分到营销通知渠道,从而不能播放自定义铃声。参考: 通知消息智能分类

(4)由于铃声是通知渠道的属性,因此铃声仅在渠道创建时有效,渠道创建后,即使设置自定义铃声也不会播放,而使用创建渠道时设置的铃声。

如果需要兼容ios端,需要在消息的扩展中额外增加如下字段:

"ext":{
"em_apns_ext":{
//设置ios端自定义铃声文件
"em_push_sound": "custom.caf",
//保证 APNs 通知扩展
"em_push_mutable_content":true
},
......
}