南京市江宁区菲尼克斯路70号总部基地32栋1001室
电话:025-8418 6339
汇云 App SDK 支持手机号码、邮箱、三方平台等多种用户账号类型。
账号类型
手机账号支持密码登录。
邮箱账号支持密码登录。
三方平台登录支持常见的平台账号授权登录,比如微信、QQ、苹果、谷歌、Twitter。
功能说明
在该模块中,您将频繁地调用对象 IZJViewerUser。它是一个单例,存储了当前用户的所有信息及相关的登录注册方法。其数据模型如下表所示:
用户账户信息:UserBean
用户公开信息:UserVCardBean
2. 设备管理
设备管理主要提供设备相关的操作,包含设备状态变化监听、设备重命名、设备固件升级、设备移除、设备网络设置等操作。
功能说明
设备管理相关类:
类名
说明
IZJViewerDevice
设备信息配置管理
IZJViewerGroup
组内设备的管理
IZJViewerGroupManager
组信息管理
DeviceBean
设备数据模型
初始化设备
根据设备ID去初始化设备控制类,错误的设备 ID 可能会导致初始化失败,此时设备的实例返回 null。
接口说明
/**
* 创建设备操作类实例
* @param deviceId 设备ID
* @return
*/
public IZJViewerDevice newDeviceInstance(String deviceId)
示例代码
IZJViewerDevice viewerDevice = ZJViewerSdk.getInstance().newDeviceInstance("deviceId");
回调监听
实现IDeviceCfgUpdateListener和IDeviceStatusListener回调接口后,您可以在设备状态和设备配置变更的回调中进行处理,刷新 App 设备控制面板的 UI。
示例代码
ZJViewerSdk.getInstance().registerDeviceCfgUpdateListener(new IDeviceCfgUpdateListener() {
@Override
public void onDeviceConfigUpdate(String deviceId, DeviceCfgItemEnum deviceCfgItem) {
Log.i(TAG, "deviceId = " + deviceId + "config change = " + deviceCfgItem);
}
});
ZJViewerSdk.getInstance().registerDeviceStatusListener(new IDeviceStatusListener() {
@Override
public void onDeviceStatusChange(String groupId, String deviceId, DeviceStatusEnum deviceStatus) {
Log.i(TAG, "deviceId = " + deviceId + "status change = " + deviceStatus);
}
});
初始化组
根据组ID去初始化组控制类,错误的组 ID 可能会导致初始化失败,此时组的实例返回 null。组 ID 是通过IZJViewerGroupManager单例获取组列表遍历获取或者直接从DeviceBean模型下的groupId获取。
接口说明
/**
* 创建组操作类实例
* @param groupId 组ID
* @return
*/
public IZJViewerGroup newGroupInstance(String groupId)
示例代码
IZJViewerGroup viewerGroup = ZJViewerSdk.getInstance().newGroupInstance("groupId");
查询设备信息
查询设备的配置信息
/**
* 获取设备配置信息
* @return
*/
DeviceBean getDeviceInfo();
示例代码
IZJViewerDevice viewerDevice = ZJViewerSdk.getInstance().newDeviceInstance("deviceId");
viewerDevice.getDeviceInfo();
修改设备名称
/**
* 修改设备名称
* @param deviceName 设备名称
* @param callback
* @return
*/
ITask setDeviceName(String deviceName, IResultCallback callback);
示例代码
IZJViewerDevice viewerDevice = ZJViewerSdk.getInstance().newDeviceInstance("deviceId");
viewerDevice.setDeviceName("new device name", new IResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(int errorCode) {
}
});
移除设备
设备被移除后,会是无主状态,在设备同一局域网下,可以通过局域网搜索添加。
接口说明
/**
* 删除设备
* @param deviceId 设备ID
* @param callback
* @return
*/
ITask removeDevice(String deviceId, IResultCallback callback);
示例代码
IZJViewerGroup viewerGroup = ZJViewerSdk.getInstance().newGroupInstance("groupId");
viewerGroup.removeDevice("deviceId", new IResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(int errorCode) {
}
});
获取设备网络信息
查询设备当前配置的网络信息,回调返回NetworkBean模型
接口说明
/**
* 获取设备当前连接网络信息
* @param callback
* @return
*/
ITask getCurNetworkInfo(ICurNetWorkCallback callback);
示例代码
IZJViewerDevice viewerDevice = ZJViewerSdk.getInstance().newDeviceInstance("deviceId");
viewerDevice.getCurNetworkInfo(new ICurNetWorkCallback() {
@Override
public void onSuccess(NetworkBean netWorkInfo) {
}
@Override
public void onError(int errorCode) {
}
});
3. 设备配网
汇云 App SDK 提供了把摄像机设备配置上路由器或网关的能力。以常见的 Wi-Fi直连配网为例,设备重置开启AP热点模式,APP直连热点后传输配网信息(SSID、密码、组ID等)。智能设备接收到后,开始快速激活,同时连接到 App 和云端,开启设备上云的第一步。
配网方式
设备配网支撑的具体能力包括:
AP热点配网
摄像头扫二维码配网
有线设备配网
名词解释
名词
说明
Wi-Fi设备
采用Wi-Fi 模组连接路由器,和 App 以及云端进行数据交互的智能设备。AP热点配网
APP先连接设备AP热点,建立一个socket连接,然后APP给设备下发Wi-Fi数据进行配网。摄像头扫二维码配网
摄像头设备通过扫描 App 上的二维码,来获取配网数据信息进行配网。有线配网
通过有线网络连接路由器的设备。功能说明
名词解释
功能说明
4. 视频管理
功能说明
播放器初始化
根据设备ID、放置播放器的视图、镜头校正模式去初始化设备控制类,错误的设备 ID可能会导致初始化失败。
接口说明
/**
* 初始化流
* @param deviceId 设备唯一标识
* @param mode 鱼眼类型
* @param streamChannelCreatedCallback
* @param firstVideoFrameShowCallback
* @param playCallback
*/
public void initStream(String deviceId, VRMode mode,
StreamChannelCreatedCallback streamChannelCreatedCallback,
FirstVideoFrameShowCallback firstVideoFrameShowCallback,
PlayCallback playCallback)
示例代码
ZJMediaRenderView mediaRenderView = new ZJMediaRenderView(context);
mediaRenderView.initStream("deviceId", VRMode.None,
new ZJMediaRenderView.StreamChannelCreatedCallback() {
@Override
public void onStreamChannelCreated() {
}
},
new ZJMediaRenderView.FirstVideoFrameShowCallback() {
@Override
public void onFirstVideoFrameShow() {
}
},
new ZJMediaRenderView.PlayCallback() {
@Override
public void onPlayState(VODTypeEnum vodType, int error) {
}
});
打开实时视频
在初始化播放器完成以后,就可以通过启动流接口打开播放器来观看实时视频。
接口说明
/**
* 开启实时视频流
* @param streamIndex 码流ID(0主码流 1次码流)
* @param talkVolumeCallback
*/
public void startRealTimeStream(int streamIndex, TalkVolumeCallback talkVolumeCallback)
示例代码
mediaRenderView.startRealTimeStream(0, new ZJMediaRenderView.TalkVolumeCallback() {
@Override
public void onProgressChange(int progress) {
}
});
打开录像视频
录像视频分为本地录像视频和云端录像视频。
接口说明
/**
* 开启设备端录像视频流
* @param startTime 起始时间
* @param timeStampChangedCallback
*/
public void startRecordStream(String startTime, TimeStampChangedCallback timeStampChangedCallback)
示例代码
mediaRenderView.startRecordStream("2020-01-01 01:01:01",
new ZJMediaRenderView.TimeStampChangedCallback() {
@Override
public void onTimeStampChanged(int timestamp) {
}
});
接口说明
/**
* 开启云端录像视频流
* @param startTime 起始时间
* @param timeStampChangedCallback
*/
public void startCloudStream(String startTime, TimeStampChangedCallback timeStampChangedCallback)
示例代码
mediaRenderView.startCloudStream("2020-01-01 01:01:01",
new ZJMediaRenderView.TimeStampChangedCallback() {
@Override
public void onTimeStampChanged(int timestamp) {
}
});
切换视频流
在观看实时视频的时候进行视频分辨率的切换(0 超清 1 高清)。
接口说明
/**
* 切换流
* @param streamIndex 码流ID(0主码流 1次码流)
*/
public void switchStream(int streamIndex)
示例代码
//切换为次码流(高清)
mediaRenderView.switchStream(1);
//切换为主码流(超清)
mediaRenderView.switchStream(0);
停止视频播放
对视频流进行关闭操作,停止视频播放。
接口说明
/**
* 停止视频播放
*/
public void stopStream()
示例代码
mediaRenderView.stopStream();
5. 快速集成
本主题介绍如何手动将汇云 Android App SDK快速集成到您的项目中。汇云SDK 要求 Android版本不低于 4.4。
集成SDK
第一步:创建 Android 工程
在 Android Studio 中新建工程。
第二步:配置 build.gradle 文件
在安卓项目的 build.gradle 文件里,添加集成准备中下载的 dependencies 依赖库。
android {
defaultConfig {
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
dependencies {
// App SDK 最新稳定安卓版:
implementation (name: 'ZJViewer_V2.0.0', ext: 'aar')
}
初始化SDK
请勿在 Application 中初始化 SDK,可在主界面onCreate中初始化:
接口1:默认正式环境
/**
* 初始化SDK
* @param context 上下文
* @param configPath SDK配置路径,建议/data/data/package/files目录
* @param cachePath SDK缓存路径,用于缓存图片、视频等
* @param companyId 公司ID
* @param appId 应用ID
* @return
*/
public boolean init(Context context, String configPath, String cachePath, String companyId, String appId)
接口2:可切换SDK环境
/**
* 初始化SDK
* @param context 上下文
* @param configPath SDK配置路径,建议/data/data/package/files目录
* @param cachePath SDK缓存路径,用于缓存图片、视频等
* @param companyId 公司ID
* @param appId 应用ID
* @param serverEnv 服务器环境
* @return
*/
public boolean init(Context context, String configPath, String cachePath, String companyId, String appId, ServerEnvEnum serverEnv)
示例代码:
ZJViewerSdk.getInstance().init(context, context.getFilesDir().getAbsolutePath(),
context.getFilesDir().getAbsolutePath(),"company_id", "app_id");
开启或关闭日志
在 debug 模式下,您可以开启 SDK 的日志开关,查看更多的日志信息,帮助您快速定位问题。
在 release 模式下,建议关闭日志开关。
/**
* 设置调试模式
* @param debugMode
*/
public void setDebugMode(boolean debugMode);
混淆配置
在 proguard-rules.pro 文件配置相应混淆配置:
-keep class com.chinatelecom.smarthome.viewer.** { *;}
6. 集成Push
基于 汇云 SDK 开发的 App,汇云 平台支持主流三方 Push 功能,包括:个推、小米、华为、OPPO、VIVO、阿里云,支持给用户发送运营 Push 和产品的告警 Push。
设置推送
APP需要集成各个三方平台推送SDK,获取三方平台生成Push Token或ID,调用汇云 APP SDK的设置推送接口,上报汇云平台。
推送相关的类
接口说明
/**
* 设置推送token,用于接收推送
* @param pushPlatform 推送平台
* @param pushToken 推送Token
* @param callback
* @return
*/
ITask setPushToken(PushPlatformEnum pushPlatform, String pushToken, IResultCallback callback);
示例代码
IZJViewerUser viewerUser = ZJViewerSdk.getInstance().getUserInstance();
viewerUser.setPushToken(PushPlatformEnum.GETUI, "pushToken", new IResultCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(int errorCode) {
}
});
7. 错误代码
枚举定义(ErrorEnum) |
错误码 |
描述 |
ERR |
-1 |
|
ERR_PARAM |
-2 |
|
ERR_NOMEM |
-3 |
|
ERR_NOINIT |
-4 |
|
ERR_NORES |
-5 |
|
ERR_OVERFLOW |
-6 |
|
ERR_MAGIC_N |
-7 |
|
ERR_KEY_UNEXIST |
-8 |
|
ERR_FILE_EXIST |
-9 |
|
ERR_AUTHORITY |
-10 |
|
ERR_CLOSE |
-11 |
|
ERR_SUPPORT |
-12 |
|
ERR_NOADDR |
-13 |
|
ERR_FREQUENTLY |
-14 |
|
ERR_TRYAGAIN |
-15 |
|
ERR_FULL |
-16 |
|
ERR_NET |
-80 |
|
ERR_TIMEOUT |
-83 |
|
DES_CHANGE |
-100 |
|
ERR_FILEEND |
-101 |
|
ERR_FILEWAIT |
-102 |
|
ERR_EXIST |
-110 |
已存在 |
SUCCESS |
0 |
请求成功 |
CHARACTER |
1001 |
配置WiFi时,传入SSID有无效字符 |
NO_WIFI_MODULE |
1002 |
查询WiFi列表,设备没有WiFi模块 |
WIFI_IS_CLOSE |
1003 |
查询WiFi列表,WiFi模块关闭 |
SIGN_NO_SVR_DISTRI |
1101 |
SIGN分配服务时,没有可分配服务 |
FREQUENT_OPERATION |
1103 |
访问频繁 |
COMPANY_ID_INVALID |
1111 |
鉴权的企业ID不存在 |
COMPANY_NO_PRIVILEGE |
1112 |
鉴权的企业ID对应的企业被平台禁用 |
APP_ID_INVALID |
1113 |
鉴权传入的AppID在企业下不存在 |
APP_ID_NO_PRIVILEGE |
1114 |
鉴权传入的AppID被企业/平台禁用 |
LICENSE_NOT_EXIST |
1115 |
传入授权的CTEI码没有找到 |
LICENSE_EXPIRE |
1116 |
传入授权的CTEI码已经过期 |
LICENSE_DISABLE |
1117 |
授权用的CTEI码被平台禁用 |
APP_HAVE_NO_LICENSE_COUNT |
1118 |
按量授权的AppID下无可用的授权数量 |
DEVICE_NO_THERE |
1121 |
设备登陆传入的设备ID无效,设备收到该错误码,重新注册新的ID |
DEVICE_DISABLE |
1122 |
该设备被平台禁用,设备无法上云 |
DEVICE_VERSION_DISABLE |
1123 |
设备版本太旧,系统不再兼容。设备此时需要进行升级 |
DEVICE_SVR_CALL_FAILED |
1131 |
设备配置管理系统访问报错 |
DEVICE_NO_BUSI_CONFIG |
1141 |
设备尚未上传业务配置 |
RESOLUTION_ABILITY_NOT_SUPPORT |
1142 |
设置的设备分辨率,当前设备不支持 |
RESOLUTION_BUSI_NOT_SUPPORT |
1143 |
设置的设备分辨率,可能因业务限制不支持(授权限制) |
PTZ_IS_MAX |
1144 |
设备执行PTZ已经转到最大值 |
EXIT_GROUP_ERR |
1146 |
设备要出的组,不是设备当前的组,出组失败 |
SDCARD_FORMATTING_ERR |
1148 |
设备格式化SD失败 |
SDCARD_NOT_EXIST |
1149 |
格式化SD卡时,SD卡不存在 |
SDCARD_WR_ERR |
1150 |
读写SD卡时,操作失败 |
ADD_CHILD_DEVICE_TIMEOUT |
1151 |
添加HUB子设备时,通信超时,失败 |
CHILD_DEVICE_EXIST |
1152 |
添加HUB子设备时,设备ID重复 |
HUB_OPT_ERR |
1153 |
HUB发生异常,操作失败 |
QUERY_RECORD_NO_PRIVILEGE |
1154 |
当前查询记录没有操作权限 |
CLOUD_SVR_CALL_FAILED |
1155 |
无法访问当前云存记录服务 |
LOCAL_RECORD_NOT_EXIST |
1156 |
当前查询详情的本地记录文件已被清理 |
CLOUD_FILE_EXPIRE |
1157 |
当前查询的云记录文件已经过期 |
BIND_CODE_EXIST |
1158 |
绑定码已存在 |
BIND_CODE_NOT_EXIST |
1159 |
绑定码不存在 |
BIND_CODE_EXPIRE |
1160 |
绑定码已过期 |
BIND_CODE_USED |
1161 |
绑定码已使用 |
ACCOUNT_IS_EXIST |
2001 |
账号已存在 |
REG_OTHER_ERR |
2003 |
其他注册失败原因 |
ACCOUNT_NOT_EXIST |
2004 |
账号不存在 |
USER_ACCOUNT_PWD_ERR |
2005 |
User登录账号密码错误 |
VERIFY_OPENID_ERR |
2006 |
第三方登陆时,第三方校验失败 |
ACCOUNT_FORBIDDEN |
2007 |
登陆时,发现账户已经被禁用 |
UTOKEN_NOT_EXIST |
2008 |
UTOKEN不存在 |
SMS_CODE_FREQUENT |
2009 |
两次获取短信验证码时间过短,返回失败 |
USER_REJECT_INVITE |
2010 |
给用户发送分享邀请,被邀请者拒绝 |
GTOKEN_NOT_MATCH |
2011 |
通过Gtoken入组,Gtoken失效 |
DEVICE_IS_IN_GROUP |
2012 |
添加设备进组时失败,设备已经加入了另一个组 |
USER_NO_PRIVILEGE |
2013 |
用户无操作权限 |
ACCOUNT_TYPE_NOT_SUPPORT |
2014 |
获取短信验证码时,不支持手机邮箱以外的方式获取 |
ACCOUNT_FORMAT_ERR |
2015 |
账号格式错误 |
ACCOUNT_ALREADY_BIND |
2016 |
账号已被绑定 |
ACCOUNT_BIND_ERR |
2017 |
绑定账号错误 |
FILEID_NOT_EXIST |
2018 |
云存储文件ID不存在 |
ERR_4GCARDNO_NOT_EXIST |
2020 |
4G卡号不存在 |
ERR_4GCARDNO_REPORT_ERR |
2021 |
4G卡号汇报失败 |
APPID_NOTFOUND_TEMPLATE |
2027 |
APPID未找到对应的短信/ems模板 |
SMS_SEND_FREQUENCY_LIMIT_ERR |
2033 |
单个手机号码在规定时间内短信发送达到上限 |
SHARE_DEVICE_ERR |
2201 |
分享失败 |
QRCODE_INVALID |
2202 |
无效的二维码 |
REMOVE_DEVICE_ERR |
2203 |
设备出组失败 |
VERIFICATION_CODE_NOT_EXIST |
2207 |
验证码不存在 |
DEVICE_P2P_NOT_SUPPORT |
3001 |
当用户向设备请求P2P时,设备返回不支持P2P |
CONN_NOT_MATCH |
3002 |
用户与设备的P2P连接校验不匹配 |
MEDIA_MATCH_TIMEOUT |
3003 |
用户和设备在MEDIA上配对超时 |
MEDIA_CHANNEL_NOT_EXIST |
3004 |
媒体操作时,对应的ChannelID不存在 |
MEDIA_PLAY_UPPER_LIMIT |
3005 |
点播流媒体时,人数超上限 |
MEDIA_INVALID |
3006 |
流媒体服务时,资源过期或无效 |
MALLOC_ERR |
4001 |
服务申请内存对象错误 |
JSON_DECODE_ERR |
4002 |
服务解析JSON协议错误 |
JSON_ENCODE_ERR |
4003 |
服务构造JSON字符串错误 |
API_PARAM_ERR |
4004 |
API调用参数错误 |
METHOD_ERR |
4005 |
API返回NIL |
ENCRYPT_ERR |
4006 |
协议加密错误 |
DECRYPT_ERR |
4007 |
协议解密错误 |
BUF_READ_ERR |
4008 |
链接读取BUFFER错误 |
TLS_PEM_KEY_ERR |
4009 |
TLS链接找不到PEM KEY文件错误 |
AUTH_ATOKEN_ERR |
4010 |
服务器之间访问调用 ATOKEN出错 |
REDIS_PUB_ERR |
4011 |
Redis服务访问错误 |
DB_CONNECT_ERR |
4012 |
数据库连接失败 |
DB_INSERT_ERR |
4013 |
数据库数据插入失败 |
DB_SELECT_ERR |
4014 |
数据库数据查询失败 |
DB_UPDATE_ERR |
4015 |
数据库数据更新失败 |
DB_DELETE_ERR |
4016 |
数据库数据删除失败 |
DB_NO_RECORD_ERR |
4017 |
没有找到相关记录 |
DB_DUPLICATE_KEY |
4018 |
主键重复 |
NET_LISTEN_ERR |
4019 |
服务端口侦听错误 |
CLOSED |
4020 |
服务关闭错误 |
IDSVR_NOT_FOUND |
4021 |
IDSVR服务找不到 |
IDSTUNSVR_NOT_FOUND |
4022 |
IDSTUN服务找不到 |
BUSISVR_NOT_FOUND |
4023 |
BUSICENTRE服务找不到 |
MEDIASVR_NOT_FOUND |
4024 |
媒体服务找不到 |
LINKSVR_NOT_FOUND |
4025 |
LINK服务找不到 |
USERSVR_CALL_FAILED |
4026 |
用户系统接口调用失败 |
IDSVR_CALL_FAILED |
4027 |
IDSVR系统接口调用失败 |
IDSTUN_CALL_FAILED |
4028 |
IDSTUN系统接口调用失败 |
PUSHSVR_NOT_FOUND |
4029 |
推送服务找不到 |
GATEWAYSVR_CALL_FAILED |
4030 |
网关服务调用失败 |
COMPMNGSVR_CALL_FAILED |
4031 |
企业后台服务调用失败 |
PUBSUBSVR_NOT_FOUND |
4032 |
订阅发布服务找不到 |
SYSNOTICESVR_NOT_FOUND |
4033 |
sysnotice找不到 |
GATEWAYSVR_NOT_FOUND |
4034 |
网关服务找不到 |
HTTPSVR_NOT_FOUND |
4035 |
http服务找不到 |
HTTPSVR_CALL_FAILED |
4036 |
http服务调用失败 |
BUSISVR_CALL_FAILED |
4037 |
busicentre调用失败 |
ID_CALL_FAILED |
4038 |
IDSVR调用失败 |
SIGN_CALL_FAILED |
4039 |
SIGN服务调用失败 |
LINK_CALL_FAILED |
4040 |
Link服务调用失败 |
LOGSVR_CALL_FAILED |
4041 |
LOG系统调用失败 |
USERSVR_NOT_FOUND |
4042 |
用户系统找不到 |
SYSNOTICESVR_CALL_FAILED |
4043 |
sysnotice找不到调用失败 |
PUBSUBSVR_CALL_FAILED |
4044 |
订阅发布服务调用失败 |
DYNAMICMETHOD_CALL_FAILED |
4045 |
notice动态调用其他服务失败 |
PLAYLOAD_IS_FULL |
4046 |
负载为空 |
GRPCSVR_CALL_FAILED |
4047 |
GRPC调用失败 |
DEVICESVR_NOT_FOUND |
4048 |
设备系统位找不到 |
EVENTSVR_NOT_FOUND |
4049 |
事件系统找不到 |
ZONE_NOT_FOUND |
4050 |
ZONE服务找不到 |
NET_WRITE_BLOCK |
4051 |
网络通道写入包失败 |
SOCKET_CLOSED |
4052 |
SOCKET连接已关闭 |
SOCKET_READERR |
4053 |
SOCKET连接读取包失败 |
ID_PARSEERR |
4054 |
ID参数解析失败(格式不争取) |
NET_DNSPARSE_ERR |
4055 |
|
NET_REQ_TIMEOUT |
4056 |
网络请求超时 |
SUBPUB_TOKEN_NOTEXIST |
4057 |
|
SOCKET_ACCEPT_ERROR |
4058 |
|
OPERATION_TOO_FREQUENT |
4059 |
|
PARSE_IP_ERR |
4060 |
|
GETSVRPUBKEY_ERR |
4061 |
获取pubkey |
LINKNOTICESVR_NOT_FOUND |
4062 |
LINKNOTICE找不到 |
ENCRYPTTYPE_ERROR |
4064 |
加密类型错误 |
VIDEOSVR_NOT_FOUND |
4065 |
视频存储服务找不到 |
EXCEPTIONSVR_NOT_FOUND |
4066 |
EXCEPTION服务找不到 |
LOGSVR_NOT_FOUND |
4067 |
LOGSVR找不到 |
OPRECORDSVR_NOT_FOUND |
4068 |
OPRECORD服务找不到 |
NATSTUNSVR_NOT_FOUND |
4069 |
NATSTUN服务找不到 |
COMBO_CALL_FAILED |
4070 |
套餐服务调用失败 |
COMBO_NOT_FOUND |
4071 |
套餐服务找不到 |
GROUPNOTHERE |
4407 |
组不存在 |
DEVICENOTINGROUP |
4409 |
Device不在组里 |
WAKEUP_DEVICEERR |
4422 |
唤醒出错 |
DEVICEOFFLINE |
4602 |
Device不在线 |
DEVICE_ISSLEEP |
4610 |
设备已休眠 |
HAVENOGROUPS |
4612 |
没有组列表 |
REG_AUTH_ERR |
5001 |
SIGN服务注册 SVRID&SVRPWD校验错误 |
SIGN_ATOKEN_NOT_EXIST |
5002 |
SIGN服务通过SVR ATOKEN找不到服务 |
SIGN_MANAGE_NOMETHOD |
5004 |
|
GENERALUTOKEN_ERR |
5005 |
USI生成UTOKEN错误 |
USERNOTHERE |
5007 |
|
USERISINGROUP |
5011 |
用户已经入组 |
ROLENOTEXIST |
5013 |
|
CHILDGROUPNOTEXIST |
5014 |
|
ROLEISINUSE |
5015 |
|
GROUPISINGROUP |
5016 |
|
USERNOTINGROUP |
5017 |
|
GROUPNOTINGROUP |
5019 |
|
DEVICEISSLEEP |
5021 |
|
ID_MAXIDINDEX_GETERR |
5024 |
|
APPNOTEXIST |
5026 |
|
APPDISABLE |
5027 |
|
APPAUTHTYPE_ERR |
5031 |
|
APPISEXIST |
5032 |
|
ACCOUNTTYPENOTBIND |
5034 |
|
APPAUTHTYPENOTSUPPORT |
5036 |
|
DEVICE_NOT_AUTH |
5038 |
|
UTOKEN_NOT_AUTH |
5039 |
|
DEVICE_FORBIDDEN |
5040 |
|
UTOKEN_FORBIDDEN |
5041 |
|
UTOKEN_CHECKERR |
5042 |
|
SYSCOMMAND_FAIL |
5043 |
|
PUSHTEMPLATENOTEXIST |
5044 |
|
DEVICE_LIMIT_AUTH |
5045 |
|
SIGN_SVRKEY_NOTEXIST |
5046 |
|
SVRPUBKEY_NOTEXIST |
5047 |
|
FILETYPE_NOTEXIST |
5048 |
|
SUBPUB_SUBJ_NOT_EXIST |
8000 |
|
SUBPUB_ID_TYPE_NOT_SUPPORT |
8001 |
|
NOTICE_QUEUE_WRITE_ERR |
8002 |
NOTICE服务写入队列失败 |
NOTICE_PROTO_NOT_SUPPORT |
8003 |
NOTICE通知协议不支持 |
LANGUAGE_NOT_EXIST |
8004 |
语言不存在 |
SUBPUB_PUBLISH_MSG_ERR |
8005 |
订阅发布服务Publish失败 |
NOTICE_JUMP_NOTIE_SUPPORT |
8006 |
NOTICE跨机房调用不支持 |
SIGNAL_NOT_SUPPORT |
9001 |
所发送的指令,对方不支持该指令集;(版本/型号错误导致) |
SERVICE_TIMEOUT |
9002 |
指令发送后,超过超时时间仍没有回应 |
SIGNAL_ALREADY_CACHE |
9003 |
通过服务端转发信令,设备支持信令缓存,设备在线,则回应 |
SIGNAL_DISCARD |
9004 |
通过服务端转发信令,不支持信令缓存,设备不在线,则回应 |
CMD_NOT_SUPPORT |
9010 |
版本较旧,或设备类型不符合不支持当前指令 |
DEVICE_REG_FORBIDDEN |
9030 |
设备注册无权限,或服务限制,设备不再重试 |
DEVICE_LOGIN_FORBIDDEN |
9031 |
设备登陆被禁用,设备不再重试 |
QR_CREATE_FAIL |
10000 |
生成二维码失败 |
CANT_SHARE_SELF |
10001 |
无法分享自己 |
DEVICE_NOT_REMOVE |
10002 |
注销账号时未删除所有设备 |
TIME_OUT |
99999 |
请求超时 |
8. 更新日志
本文提供 Android 版汇云 App SDK 的变更日志和发布说明。SDK 会持续更新,并且汇云对每个版本 SDK 均保留使用权利(© 2017 - 2021 HuiYun Inc. All Rights Reserved)。