一、功能简介
但是在一些办公场景、医疗场景等,用户需要在手机和电脑之间无缝切换,随时随地进行聊天、通话等,基于此我们推出了多设备登录功能,开启后,你的用户可以使用同一个 UserID 同时登录多个客户端(例如,一部 iPhone、一台 iPad 和一台 Windows PC),当收到来电时,所有登录的设备都会同时收到来电邀请并响起铃声,用户在任意一台设备上接听后,其他设备上的来电界面会自动消失,通话将在接听设备上建立。
注意:多设备登录是我们的高级功能,你需要购买或领取音视频通话能力(TUICallKit) 群组通话版的应用(SDKAppId),你也可以开通体验版免费试用,版本说明及开通指引参见 音视频通话能力版本。
二、开始接入
1. 你已经按照 快速接入 文档,将 TUICallKit SDK 集成到你的项目中,并能成功发起和接听一次基本的音视频通话。
2. 开启多设备登录,你只需在TUICallKit 登录成功后调用 enableMultiDeviceAbility API 即可,示例如下:
AndroidiOSFlutterWebuni-app (小程序)原生小程序// 以 Kotlin 为例// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallEngine.createInstance(context).enableMultiDeviceAbility(true, null)// 以 Swift 为例// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallEngine.createInstance().enableMultiDeviceAbility(enable: enable) { } fail: { code, message in }// true: 开启多设备登录 false: 关闭多设备登录 (默认)final result = await TUICallEngine.instance.enableMultiDeviceAbility(true);// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallKitServer?.getTUICallEngineInstance()?.enableMultiDeviceAbility(true);// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallKitServer?.getTUICallEngineInstance()?.enableMultiDeviceAbility(true);// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallKitServer?.getTUICallEngineInstance()?.enableMultiDeviceAbility(true);
完成以上设置后,你的应用便成功开启了多设备登录功能。无需其他额外配置。
三、关键逻辑
为了帮助你更好地理解该功能并快速定位潜在问题,我们在此简要解析其背后的信令交互逻辑。
四、常见问题
如果不调用 enableMultiDeviceAbility API,默认行为是什么?
TUICallKit 默认是关闭多设备登录。在这种模式下,同一个 UserID 只有最后登录的设备能接收到呼叫,例如,用户先登录 PC,再登录手机,则只有手机能收到来电。
如果用户的网络不稳定,会不会出现两台设备都接听成功的情况?
A: 不会。TUICallKit 的信令后台具有原子性处理机制,它只认第一个到达的“接听”请求。一旦确认了一个接听设备,就会立刻向其他设备发送“取消”指令,确保通话的唯一性。