Multi-Device Login
功能简介
在正常情况下,一个用户 ID(UserID)在同一时间只能在一个设备上接收到来电,如果用户在 PC 端登录后,又在手机端登录,那么只有手机端能收到后续的来电提醒。

但是在一些办公场景、医疗场景等,用户需要在手机和电脑之间无缝切换,随时随地进行聊天、通话等,基于此我们推出了多设备登录功能,开启后,您的用户可以使用同一个 UserID 同时登录多个客户端(例如,一部 iPhone、一台 iPad 和一台 Windows PC),当收到来电时,所有登录的设备都会同时收到来电邀请并响起铃声,用户在任意一台设备上接听后,其他设备上的来电界面会自动消失,通话将在接听设备上建立。
注意:
开始接入
1. 您已经按照 快速接入 文档,将 TUICallKit SDK 集成到您的项目中,并能成功发起和接听一次基本的音视频通话。
2. 开启多设备登录,您只需在 TUICallKit 登录成功后调用
enableMultiDeviceAbility API 即可,示例如下:// 以 Kotlin 为例// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallEngine.createInstance(context).enableMultiDeviceAbility(true, null)
// 以 Swift 为例// true: 开启多设备登录 false: 关闭多设备登录 (默认)TUICallEngine.createInstance().enableMultiDeviceAbility(enable: true) {} 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);
3. 完成以上设置后,您的应用便成功开启了多设备登录功能。无需其他额外配置。
关键逻辑
为了帮助您更好地理解该功能并快速定位潜在问题,我们在此简要解析其背后的信令交互逻辑。

常见问题
如果不调用 enableMultiDeviceAbility API,默认行为是什么?
TUICallKit 默认是关闭多设备登录。在这种模式下,同一个 UserID 只有最后登录的设备能接收到呼叫,例如,用户先登录 PC,再登录手机,则只有手机能收到来电。
如果用户的网络不稳定,会不会出现两台设备都接听成功的情况?
不会。TUICallKit 的信令后台具有原子性处理机制,它只认第一个到达的“接听”请求。一旦确认了一个接听设备,就会立刻向其他设备发送“取消”指令,确保通话的唯一性。