依托云优势,接入你的智能产品
汇云Android开发文档
1.用户账户管理
汇云 App SDK 支持手机号码、邮箱、三方平台等多种用户账号类型。
账号类型
手机账号支持密码登录。
邮箱账号支持密码登录。
三方平台登录支持常见的平台账号授权登录,比如微信、QQ、苹果、谷歌、Twitter。
功能说明
在该模块中,您将频繁地调用对象 IZJViewerUser。它是一个单例,存储了当前用户的所有信息及相关的登录注册方法。其数据模型如下表所示:
用户账户信息:UserBean
字段 | 类型 | 说明 |
userId | String | 用户注册账号以后生成的用户id |
mobile | String | 用户用手机注册以后使用的手机号 |
String | 用户用邮箱注册以后使用的邮箱号 | |
thirdType | int | 三方平台登录类型 |
thirdId | String | 三方平台登录以后产生的id |
thirdToken; | String | 三方平台登录以后产生的token |
用户公开信息:UserVCardBean | ||
字段 | 类型 | 说明 |
married | int | 是否已婚 |
sex | int | 性别 |
mobile | String | 手机号 |
String | 邮箱 | |
address | String | 地址 |
birthday | String | 生日 |
city | String | 城市 |
country | String | 国家 |
vMid | String | |
nickName | String | 昵称 |
provice | String | 省份 |
photoProfile | String | 照片档案 |
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 上的二维码,来获取配网数据信息进行配网。有线配网
通过有线网络连接路由器的设备。功能说明
名词解释
名词 | 说明 |
Wi-Fi设备 | 采用Wi-Fi 模组连接路由器,和 App 以及云端进行数据交互的智能设备。 |
AP热点配网 | APP先连接设备AP热点,建立一个socket连接,然后APP给设备下发Wi-Fi数据进行配网。 |
摄像头扫二维码配网 | 摄像头设备通过扫描 App 上的二维码,来获取配网数据信息进行配网。 |
有线配网 | 通过有线网络连接路由器的设备。 |
功能说明
类名 | 说明 |
IZJAPActivator | 提供AP热点配网(先直连观看,再配网) |
IZJAPDirectActivator | 提供AP热点配网(直连配网) |
IZJQRActivator | 提供摄像头扫二维码配网 |
4. 视频管理
功能说明
类名 | 说明 |
ZJMediaRenderView | 播放器类,主要负责视频播放的相关管理 |
播放器初始化
根据设备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的设置推送接口,上报汇云平台。
推送相关的类
类名 | 说明 |
ZJViewerUser | 用户管理的类,通过单例管理 |
接口说明
/**
* 设置推送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)。