概览
消息管理模块负责 App 与设备、服务器之间的消息传递,主要包含以下功能:
在线消息回调。
接收到事件消息(Event):告警、分享、系统通知。
接收到状态消息(ProReadonly)。
控制/操作设备(Action)。
设置设备参数(ProWritable)。
获取设备状态(ProReadonly)。
获取设备参数(ProWritable)。
自定义消息透传(Data)。
使用示例
监听物模型、事件消息和 App 上线通知
//ProReadonly状态消息IotVideoSdk.getMessageMgr().addModelListener(new IModelListener() {@Overridepublic void onNotify(ModelMessage data) {//todo}});//Event事件消息IotVideoSdk.getMessageMgr().addEventListener(new IEventListener() {@Overridepublic void onNotify(EventMessage data) {//todo}});//App上线通知IoTVideoSdk.getMessageMgr().addAppLinkListener(new IAppLinkListener() {@Overridepublic void onAppLinkStateChanged(int i) {//todo}});
设置物模型
//发送Action/ProWritable数据IoTVideoSdk.getMessageMgr().writeProperty("deviceId"/**设备ID**/, "ProWritable._logLevel"/**物模型路径**/,"{\\"setVal\\":0}"/**JSON数据**/, new IResultListener<ModelMessage>(){@Overridepublic void onStart() {}@Overridepublic void onSuccess(ModelMessage msg) {}@Overridepublic void onError(int errorCode, String errorMsg) {}});
获取物模型
//获取ProWritable/ProReadonly数据IoTVideoSdk.getMessageMgr().readProperty("deviceId"/**设备ID**/, "ProReadonly"/**物模型路径**/, new IResultListener<ModelMessage>() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(ModelMessage msg) {}@Overridepublic void onError(int errorCode, String errorMsg) {}});
用户物模型(ProUser)设置
//添加、删除、更改用户数据//MessageMgr.MODIFY_USER_PARAM 修改//MessageMgr.DELETE_USER_PARAM 删除//MessageMgr.ADD_USER_PARAM 添加IoTVideoSdk.getMessageMgr().operateProUser("deviceId"/**设备ID**/, "ProUser._buildIn.val.almEvtPushEna"/**物模型路径**/,MessageMgr.MODIFY_USER_PARAM /**操作类型**/,"1"/**数据**/, new IResultListener<ModelMessage>() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(ModelMessage msg) {}@Overridepublic void onError(int errorCode, String errorMsg) {}});
高级功能
透传消息到设备
IoTVideoSdk.getMessageMgr().sendDataToDeviceWithResponse(deviceId, data, new IResultListener<DataMessage>() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(DataMessage msg) {}@Overridepublic void onError(int errorCode, String errorMsg) {}});
云存储
使用该功能必须集成
vas-release.aar
库,该模块主要负责云存储回放列表查询功能。获取回放的 m3u8 列表
在购买云存储服务之后,可以通过以下方式查询设备上传到云端的 m3u8 列表。
//API 接口/*** 获取m3u8文件地址** @param devId 腾讯设备Id* @param startTime 播放起始的utc时间,单位秒* @param endTime 播放结束的utc时间,单位秒,不填则默认播放到最新为止* @param listener 回调*/void getVideoPlayAddressWithDeviceId(String devId,long startTime,long endTime,SubscriberListener listener);//demo 示例代码VasMgr.getVasService().getVideoPlayAddressWithDeviceId(devicdId, startTime, endTime, new SubscriberListener() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(@NonNull JsonObject response) {}@Overridepublic void onFail(@NonNull Throwable e) {}});
获取回放 ts 列表
在购买云存储服务之后,可以通过以下方式获取到查询的时间段内的云视频数据。
//API 接口/*** 获取ts文件列表* 由于查询的数据大小限制,起始到结束时间差需要小于等于一天* @param devId 腾讯设备Id* @param startTime 要查询的起始时间,单位秒* @param endTime 要查询的结束时间,单位秒* @param listener 回调*/void getVideoPlayListWithDeviceId(String devId,long startTime,long endTime,SubscriberListener listener);//demo 示例代码VasMgr.getmVasService().getVideoPlayListWithDeviceId(deviceID, startTime, endTime, new SubscriberListener() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(@NonNull JsonObject response) {}@Overridepublic void onFail(@NonNull Throwable e) {}});
获取回放的事件列表
在购买云存储服务之后,可以通过以下方式查询设备上传到云端的报警事件列表。
//API 接口/*** 获取事件列表** @param devId 腾讯设备Id* @param startTime 起始时间,单位秒* @param endTime 结束时间,单位秒,不填则默认查到最新* @param almTypeMask 告警类型掩码(按位处理),缺省-1返回所有类型* @param pagedSize 分页查询参数,一页返回多少项,范围1-50,缺省50* @param pagedAlmId 分页查询参数,上一页最后一个AlarmId,如果是第一页则该字段可空* @param listener 回调*/void getEventListWithDeviceId(String devId,long startTime,long endTime,int almTypeMask,int pagedSize,String pagedAlmId,SubscriberListener listener);//demo 示例代码VasMgr.getmVasService().getEventListWithDeviceId(deviceId, startTime, endTime, -1,50, new SubscriberListener() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(@NonNull JsonObject response) {}@Overridepublic void onFail(@NonNull Throwable e) {}});
获取回放的事件事件详情信息
在购买云存储服务之后,可以通过以下方式查询设备上传到云端的某个报警事件的一些具体信息。
//api 接口/*** 查询事件记录** @param devId 腾讯设备Id* @param alarmId 事件ID* @param listener 回调*/void queryEventInfo(String devId,String alarmId,SubscriberListener listener);//demo 示例代码VasMgr.getmVasService().queryEventInfo(device, alarmId, new SubscriberListener() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(@NonNull JsonObject response) {}@Overridepublic void onFail(@NonNull Throwable e) {}});
删除云回放事件
在购买云存储服务之后,可以通过以下方式删除设备上传到云端的报警事件。
//API 接口/*** 删除告警记录*** @param devId 腾讯设备Id* @param list alarmId 列表* @param listener 回调*/void deleteEventsWithDeviceId(String devId,List<String> list,SubscriberListener listener);//demo 示例代码VasMgr.getmVasService().deleteEventsWithDeviceId(devId, alarmIdList, new SubscriberListener() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(@NonNull JsonObject response) {}@Overridepublic void onFail(@NonNull Throwable e) {}});