微信小程序
设备认证 SDK(安卓)
# 设备认证 SDK(安卓)
在系统集成 rpmbd 后,开发者需要在 Launcher 应用中接入设备认证 SDK,SDK 主要提供以下能力:
- 注册设备
registerVoipDevice
:将 model_id 和 SN 与设备绑定。一旦成功后 SN 不可修改。 - 获取拨打方票据
getCallerTicket
:进行设备认证并从微信后台获取票据,设备端发起通话时传给 VOIP 通话插件的 initByCaller 接口的 voipToken 参数。
# 1. 下载 SDK
请在 此处 下载 SDK 的 aar 文件(名称为 voipsdk-x.x-release.aar)。具体使用可以参考示例代码
建议使用 1.3 及以上版本(物联网卡应使用 1.3.1 及以上版本)。低版本不支持并发调用 registerVoipDevice,请务必注意在前一次调用返回前不要重复调用。
# 2. 接口文档
注意:使用设备认证 SDK 前,清先保证 rmpbd 服务正常运行。
# 2.1 初始化 init
SDK 初始化,其它接口在调用之前需要保证 init 成功。
boolean init()
# 2.2 注册设备 registerVoipDevice
将 model_id 和 SN 与设备绑定,一旦成功后 appid、model_id、SN 均不能更换。
int registerVoipDevice(String appid, String model_id, String sn, String sn_ticket) throws Exception
# 注意事项(调用前必读)
- 注册设备成功后,会将 SN 固化至 EMMC/RPMB 分区中,标定此设备的唯一身份。SN 和 model_id 一经写入后续即不可更改。
- 此处使用的 SN,必须经过 WMPF 的 addDevice 接口作为 deviceId 注册,并与 WMPF 设备激活时使用的 deviceId 一致。 否则后续无法正常发起通话。
- 1.3 以下版本 SDK,此接口严禁并发执行,务必在逻辑中保证一次 registerVoipDevice 返回后才能再次调用。
- 注册成功后会在本 APK 的存储里存放数字证书,如果 APK 有变动(Android 系统认为应用变更了),则证书失效(会报错
cert fail
或ticket 0 digital-sig check fail
),可以清理 APK 的数据再以相同的 appid、model_id、SN调用接口重新申请即可。 - 注册过程会有网络请求,时长根据网络情况会有所不同。高版本 android 不允许在主线程里进行网络请求,可以加处理或在线程里来调用 sdk。
# 参数说明
# 返回值
其他异常说明请参考设备验证常见问题
# 2.3 获取拨打方票据 getCallerTicket
进行设备认证,并从微信后台获取票据 (caller_ticket)。设备发起通话时需要将这一票据传给 VOIP 通话插件的 initByCaller 接口。
String getCallerTicket(String appid, String model_id) throws Exception
# 参数说明
# 注意事项
getCallerTicket
耗时与网络有关,正常会在 1 秒左右。高版本 android 不允许在主线程里做,可以加处理或在线程里来调用 sdk。- ticket 有一个小时的有效期,一个小时内可被多次通话复用。建议开发者在用户发起通话前,提前调用 getCallerTicket 并缓存,避免在发起通话时再进行获取,以缩短发起通话时的用户等待时长。
# 2.4 获取设备 SN GetDeviceSn
获取 registerVoipDevice
接口写入的 SN。
String GetDeviceSn()