-
Notifications
You must be signed in to change notification settings - Fork 87
Users & Telepresence_chn
在本页中,我们将概述所有与temi用户和视频电话相关的SDK方法。temi用户是拥有temi帐户的人,这意味着他们已经下载了移动应用程序,并且已经完成注册,这时你可以从temi给他们打视频电话。
返回值 | 方法 | 说明 |
---|---|---|
List<UserInfo> | getAllContact() | 获取所有的 temi 联系人 |
UserInfo | getAdminInfo() | 获取 temi 管理员信息 |
String | startTelepresence(String displayName, String peerId, Platform platform) | 开启一个视频电话 |
int | stopTelepresence() | 结束当前通话 |
List<RecentCallModel> | getRecentCalls() | 获取最近通话记录 |
List<MemberStatusModel> | getMembersStatus() | 获取成员(管理员,主人)空闲状态 |
Pair<Int, String> | createLinkBasedMeeting(LinkBasedMeeting linkBasedMeeing) | 创建一个会议链接 |
String | startMeeting(List participants, boolean firstParticipantJoinedAsHost, boolean blockRobotInteraction) | 开启多方通话 |
int | setMicGainLevel(int micGainLevel) | 设置麦克风增益 |
接口 | 描述 |
---|---|
OnUsersUpdatedListener | 用户信息变化监听器 |
OnTelepresenceStatusChangedListener | 视频电话状态变化监听器 |
OnTelepresenceEventChangedListener | 视频电话事件变化监听器 |
模型 | 描述 |
---|---|
UserInfo | 用户信息 |
RecentCallModel | 最近通话记录 |
CallState | 视频电话状态 |
CallEventModel | 视频通话事件 |
Platform | 用户平台 |
MemberStatusModel | 成员(管理员,主人)空闲状态 |
LinkBasedMeeting | 创建会议链接请求实体 |
Participant | 会议参与者实体 |
用这个方法获取与 Launcher 同步的所有 temi 联系人。这些联系人已经保存在管理员的移动设备上,并已注册到 temi 服务器。
-
返回值
类型 说明 List<UserInfo> 联系人信息列表 -
原型
List<UserInfo> getAllContact();
-
所需权限
无。
-
最小支持版本
0.10.36
用这个方法来获取temi的管理员用户信息,该信息可用于许多用途,但主要是用于从temi向管理员的移动设备拨打视频电话。
-
返回值
类型 说明 UserInfo 管理员用户信息 -
原型
UserInfo getAdminInfo();
-
所需权限
无。
-
最小支持版本
0.10.36
用这个方法向 temi 联系人发起一个视频电话。
-
参数
参数 类型 说明 displayName String 你要拨打视频电话的人名字的字符串值peerId String 你要拨打视频电话的联系人ID platform Platform 要拨打视频通话的目标平台,可以向任何联系人的 temi App端拨打视频通话,但只可以向管理员或拥有者的 temi 管理平台拨打视频通话 -
返回值
类型 说明 String - -
原型
String startTelepresence(String displayName, String peerId, Platform platform);
-
所需权限
无。
-
最小支持版本
0.10.36
结束当前进行的通话
-
参数
无.
-
返回值
类型 说明 int 200 成功
400 包名验证错误
403 需要 Meetings 权限
404 没有进行中的通话
500 SDK 内部错误 -
原型
int stopTelepresence();
-
所需权限
Meetings
-
最小支持版本
1.130.1
用这个方法来获取最近通话记录列表。
-
返回值
类型 说明 List<RecentCallModel> 最近通话列表 -
原型
List<RecentCallModel> getRecentCalls();
-
所需权限
无。
-
最小支持版本
0.10.36
用这个方法来获取 temi 成员(管理员,主人)的空闲状态,一般用于判断是否可以拨打视频电话。
-
返回值
类型 说明 List<MemberStatusModel> 成员空闲状态列表 -
原型
List<MemberStatusModel> getMembersStatus();
-
所需权限
无。
-
最小支持版本
0.10.72
以 SDK 的身份为当前 temi 创建一个会议链接,与 temi 手机应用与 temi 管理平台的功能一致。
-
返回值
类型 说明 Pair<int, String> 返回值状态码及会议链接或错误描述
200 成功, 伴有会议链接如https://center.robotemi.cn/meetings/{linkId}
403, 需要 Meetings 权限
429, 请求过于频繁,需间隔 5 秒以上 -
原型
Pair<int, String> createLinkBasedMeeting(LinkBasedMeeting linkbasedMeeting);
-
所需权限
Meetings.
-
最小支持版本
1.130.0
开启多方通话,以机器人的私人会议链接开启会议,会向 participants 发出邀请并自动允许入会。 支持传参并将会议转为第一个参会人的私人会议。
-
参数
参数 类型 说明 participants List 参会人列表 firstParticipantJoinedAsHost Boolean 是否指派第一个入会的参会人为主持人,否则 Launcher 将作为主持人 blockRobotInteraction Boolean 是否禁止 temi 端 UI,防止通话被 temi 端的用户误操作 -
返回值
类型 说明 String 返回值状态码
200 成功
403, 需要 Meetings 权限 -
原型
String startMeeting(List<Participant> participants, boolean firstParticipantJoinedAsHost, boolean blockRobotInteraction);
-
所需权限
Meetings.
-
最小支持版本
1.131.1
设置麦克风增益,1倍为无增益,最高为4倍
-
参数
参数 类型 说明 micGainLevel int 取值1-4 -
返回值
类型 说明 int 返回值状态码
0 失败
1 成功
403 需要 SETTINGS 权限
429 请求过于频繁,需要间隔2秒 -
原型
int setMicGainLevel(int micGainLevel);
-
所需权限
SETTINGS
-
最小支持版本
1.133.0
可监听 temi 联系人信息更新。在你的上下文中实现这个监听器接口,并重写接口中的方法以监听联系人信息变化。
package com.robotemi.sdk.listeners;
abstract class OnUsersUpdatedListener {}
属性 | 类型 | 说明 |
---|---|---|
userIds | List<String> | temi 联系人的 ID 列表 |
-
参数
参数 类型 说明 user UserInfo 发生变更的联系人用户信息 -
原型
void onUserUpdated(UserInfo user);
-
参数
参数 类型 说明 listener OnUsersUpdatedListener 这个类的子类实例 -
原型
void addOnUsersUpdatedListener(OnUsersUpdatedListener listener);
-
参数
参数 类型 说明 listener OnUsersUpdatedListener 这个类的子类实例 -
原型
void removeOnUsersUpdatedListener(OnUsersUpdatedListener listener);
可监听视频电话的状态变化的监听器。通过这个监听器你主要可以知道视频通话是否开始、结束或者被拒绝。
129 版本后传入 sessionId=""
即可,可监听所有通话的状态回调。
package com.robotemi.sdk.listeners;
abstract class OnTelepresenceStatusChangedListener {}
属性 | 类型 | 说明 |
---|---|---|
sessionId | String |
-
参数
参数 类型 说明 callState CallState 视频电话状态 -
原型
void onTelepresenceStatusChanged(CallState callState);
-
参数
参数 类型 说明 listener OnTelepresenceStatusChangedListener 这个类的子类实例 -
原型
void addOnTelepresenceStatusChangedListener(OnTelepresenceStatusChangedListener listener);
-
参数
参数 类型 说明 listener OnTelepresenceStatusChangedListener 这个类的子类实例 -
原型
void removeOnTelepresenceStatusChangedListener(OnTelepresenceStatusChangedListener listener);
通过这个监听器你可以监听所有的来电(开始和结束)、去电(开始和结束)事件。
package com.robotemi.sdk.listeners;
interface OnTelepresenceEventChangedListener {}
-
参数
参数 类型 说明 callEventModel CallEventModel 视频电话事件 -
原型
void onTelepresenceEventChanged(CallEventModel calleventModel);
-
参数
参数 类型 说明 listener OnTelepresenceEventChangedListener 实现了此接口的类的实例 -
原型
void addOnTelepresenceEventChangedListener(OnTelepresenceEventChangedListener listener);
-
参数
参数 类型 说明 listener OnTelepresenceEventChangedListener 实现了此接口的类的实例 -
原型
void removeOnTelepresenceEventChangedListener(OnTelepresenceEventChangedListener listener);
用于保存temi联系人信息的对象。
package com.robotemi.sdk;
class UserInfo {}
属性 | 类型 | 说明 |
---|---|---|
userId | String | 用户 ID |
name | String | 用户名字 |
picUrl | String | 用户头像图片链接地址 |
role | int | 用户角色,0 为管理员,1 为主人,2 为一般联系人 1.129.1 版本后,0 表示管理员,1 表示分级管理员,2 表示访客,3 表示分配给这台机器的联系人,可用于通话。10 表示分配给这台机器的联系人,仅用于人脸识别,不能用于通话 |
用于保存视频电话中关于会话状态的信息。
package com.robotemi.sdk.telepresence;
class CallState {}
属性 | 类型 | 说明 |
---|---|---|
sessionId | String | |
state | State | 视频电话状态 |
lowLightMode | Boolean | 夜景增强开关 (130 版本加入) |
视频电话状态。
package com.robotemi.sdk.telepresence.CallState;
enum State {
ENDED, // 通话结束
DECLINED, // 呼叫被被叫方拒绝
STARTED // 被叫方已接受呼叫并开始通话
// 以下状态与 1.129.1 版本加入。
INITIALIZED, // 通话初始化
NOT_ANSWERED, // 对方未接听
BUSY, // 对方正忙
POOR_CONNECTION, // 连接遇到问题
CANT_JOIN, // 无法加入通话
}
用于保存视频电话事件的信息。
package com.robotemi.sdk.model;
class CallEventModel {}
属性 | 类型 | 说明 |
---|---|---|
sessionId | String | |
type | int | 视频电话类型,来电(0)或去电(1) |
state | int | 视频电话状态,开始(0)或结束(1) |
常量 | 类型 | 值 | 说明 |
---|---|---|---|
TYPE_INCOMING | int | 0 | 来电 |
TYPE_OUTGOING | int | 1 | 去电 |
STATE_STARTED | int | 0 | 视频电话开始 |
STATE_ENDED | int | 1 | 视频电话结束 |
temi 客户端平台类型。
package com.robotemi.sdk.constants;
enum Platform {
MOBILE, // temi mobile App
TEMI_CENTER // temi 管理平台
}
用于保存成员(管理员,主人)的空闲状态。
package com.robotemi.sdk.model;
class MemberStatusModel {}
属性 | 类型 | 说明 |
---|---|---|
memberId | String | 成员的用户 ID |
mobileStatus | int | 用户在 temi App 上的空闲状态 |
centerStatus | int | 用户在 temi Center 上的空闲状态 |
常量 | 类型 | 值 | 说明 |
---|---|---|---|
STATUS_ONLINE | int | 0 | 在线并空闲 |
STATUS_OFFLINE | int | 1 | 离线 |
STATUS_BUSY | int | 2 | 忙碌 |
创建会议链接请求实体
package com.robotemi.sdk.telepresence;
class LinkBasedMeeting {}
属性 | 类型 | 说明 |
---|---|---|
topic | String | 会议主题 |
availability | Availability | 链接的可用时间,指定起始时间或设置为永久有效 |
limit | Limit | 通话时长及使用次数限制 |
permission | Permission | 配置会议中链接使用者的权限,控制机器人,创建会议记录等 |
security | Security | 配置会议链接的密码 |
会议参与者实体
package com.robotemi.sdk.telepresence;
class Participant {}
属性 | 类型 | 说明 |
---|---|---|
peerId | String | 参会人 ID |
platform | Platform | Platform.MOBILE 手机端, Platform.TEMI_CENTER 网页端 |