MessageCenter 消息中心接口

  1. 启动消息监听
  2. 停止消息监听
  3. 注册人脸识别事件回调
  4. 注销人脸识别事件回调
  5. 注册动态侦测事件回调
  6. 注销动态侦测事件回调
  7. 获取实例
  8. 订阅消息
  9. 取消已订阅消息
  10. 查询已订阅消息

1. 启动消息监听

描述

开始监听IPC设备上报的消息事件。

接口

public static void startMessageReceiver(String host, int port);

参数说明

参数名称描述示例
host本地Ip地址。192.168.1.101
port本地port端口。8080

代码示例

2. 停止消息监听

描述

停止监听IPC设备上报的消息事件。

接口

public static void stopMessageReceiver();

参数说明

本接口没有参数。

3. 注册人脸识别事件回调

描述

注册人脸识别事件回调,在线的IPC设备识别到人脸后,上抛人脸识别事件。

接口

public static void registerFaceDetectListener(FaceDetectListener listener);

参数说明

参数名称描述示例
listener人脸识别回调

代码示例

MessageCenter.registerFaceDetectListener(new FaceDetectListener() {
    @Override
    public void onFaceDetect(FaceRecognitionEvent faceRecogEvent) {
        if (userName == null) {
            showToast("发现未注册的用户");
        } else {
            showToast("发现用户[ " + faceRecogEvent.faceid + " ]");
        }
    }
});

4. 注销人脸识别事件回调

描述

注销人脸识别事件回调。

接口

public static void unregisterFaceDetectListener(FaceDetectListener listener);

参数说明

参数名称描述示例
listener人脸识别回调

5. 注册动态侦测事件回调

描述

注册动态侦测事件回调,在线的IPC捕捉到动态侦测事件后,上抛该消息。

接口

public static void registerMotionDetectListener(MotionDetectListener listener);

参数说明

参数名称描述示例
listener动态侦测回调

代码示例

MessageCenter.registerMotionDetectListener(new MotionDetectListener() {
    @Override
    public void onDynamicDetect(DynamicDetectEvent dynamicDetectEvent) {
        showToast("设备" + dynamicDetectEvent.sn + "触发了" + dynamicDetectEvent.detect_type "事件");
    }
});

6. 注销动态侦测事件回调

描述

注销动态侦测事件回调。

接口

public static void unregisterMotionDetectListener(MotionDetectListener listener);

参数说明

参数名称描述示例
listener动态侦测回调

7. 获取实例

描述

获取实例。

接口

public static MessageCenter getInstance();

8.订阅消息

描述

订阅消息接口用于向IPC设备端订阅相关的消息,一旦订阅了消息,当设备端产生了相关消息的时候,便会向订阅时传入的回调接口发送一个HTTP POST消息,从而达到通知订阅者的目的。

接口

public void subscribeEvent(String deviceId, List‹String› events, RpcCallback‹RpcResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
events事件类型,可以是[“face_recog_event”,”dynamic_detect_event”]或者其中一个,其中”face_recog_event”仅FM020支持 [“face_recog_event”]
callback 调用结果

回调示例

List‹String› events = new ArrayList‹›();

events.add("face_recog_event");
MessageCenter.getInstance().subscribeEvent("FS101D8BS00096", events, new RpcCallback‹RpcResponse›() {
    @Override
    public void onComplete(RpcResponse result) {
        Log.i(TAG, "return code= " + result.code());
        if (result.code() == RpcErrorCode.SUCCESS) {
            Log.i(TAG, "event subscribe success");
        } else {
            Log.i(TAG, "event subscribe failed, code:" + result.code());
        }
    }

    @Override
    // 异常回调,例如未发现对应IPC设备
    public void onError(Throwable t) {
        Log.i(TAG, "Exception: " + t.getMessage());
    }
});

注:参考以下实现,后续接口不再说明。

响应参数

字段名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有0、1、2、5、310、311,见错误码的描述

9. 取消已订阅消息

描述

用于取消已经向IPC设备端订阅过的消息,取消订阅后,当设备端产生相关消息时,便不会向对应的回调地址发送HTTP POST消息。

接口

public void unsubscribeEvent(String deviceId, List‹String› events, RpcCallback‹RpcResponse› callback);

参数说明

参数名称 描述 示例
deviceIdIPC序列号C201D98T00094
events事件类型,可以是[“face_recog_event”,”dynamic_detect_event”]或者其中一个,其中”face_recog_event”仅FM020支持 [“face_recog_event” ]
callback调用结果

响应参数

字段名称 类型描述
codeint 返回码,表示操作的结果;
本接口返回码有0、1、2、5、310,见错误码的描述

10. 查询所有已订阅消息

描述

用于查询IPC设备端所有订阅的消息,当设备端产生相关消息时,会向对应的回调地址发送HTTP POST消息。

接口

public void getSubscribedEvents(String deviceId, RpcCallback‹RpcResponse‹IpcEventCollection›› callback);

参数说明

字段名称 描述示例
deviceIdIPC序列号C201D98T00094
callback调用结果

响应参数

字段名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有 0、1、2、3、5、7, 见错误码的描述
dataIpcEventCollection
返回码成功才会有此字段,详见RpcResponse.IpcEventCollection