MessageCenter 消息中心接口

  1. 订阅消息
  2. 取消已订阅消息
  3. 查询已订阅消息

1.订阅消息

描述

订阅消息接口用于向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 调用结果

回调示例

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
    // http调用出错
    public void onAbort(int httpStatus) {
        Log.i(TAG, "unexpected http status: " + httpStatus);
    }

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

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

响应参数

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

2. 取消已订阅消息

描述

用于取消已经向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,见错误码的描述

3. 查询所有已订阅消息

描述

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

接口

public void getSubscribedEvents(String deviceId, RPCCallback‹RPCResponse‹IPCEventList›› callback);

参数说明

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

响应参数

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

PeopleFlowStats 人流统计接口

目前仅商米AI识客摄像机支持该模块。

1.设置进门拌线坐标

描述

进门拌线是IPC设备用来判断某个人是否已经进来的基础,因此对于人脸识别和客流统计,需要通过此接口来设置这个拌线的坐标。

接口

public void setDoorLine(String deviceId, int resolution, int start_x, int start_y, int end_x, int end_y, RPCCallback‹RPCResponse› callback);

参数说明

参数名称 描述示例
deviceIdIPC序列号C201D98T00094
resolution只能取值0和1,0表示1080P的分辨率,1表示720P的分辨率0
start_x拌线的左边端点X坐标,1080p范围0<=x<=1920,720p范围0<=x<=1280500
start_y拌线的左边端点Y坐标,1080p范围0<=y<=1080,720p范围0<=y<=720 500
end_x拌线的右边端点X坐标,1080p范围0<=x<=1920,720p范围0<=x<=1280 500
end_y拌线的右边端点Y坐标,1080p范围0<=y<=1080,720p范围0<=y<=720 500
callback调用结果

响应参数

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

2.获取进门拌线坐标

描述

获取进门拌线的坐标信息。

接口

public void getDoorLine(String deviceId, RPCCallback‹RPCResponse‹DoorLineBean›› callback);

参数说明

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

响应参数

字段名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、260、261、262、263、264、276、277、279,见错误码的描述
dataDoorLineBean返回码成功才会有此字段,详见RPCResponse.DoorLineBean

3.获取指定时间内的到访人流统计信息

描述

获取指定某一时间内的人流统计信息,如果设备不存在这个时间内的信息则会返回错误。

接口

public void getPeopleStat(String deviceId, long start_time, long end_time, int period, RPCCallback‹RPCResponse‹PeopleStatBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
start_timeUnix格式时间戳,精确至秒,开始时间,时间是整小时或者整天或者半小时的时间戳,譬如2019-07-01,2019-07-01 10:00,或者
2019-07-01 10:30这样的时间对应的时间戳
1578969264
end_timeUnix格式时间戳,精确至秒,结束时间。时间要求同上 1579055640
period人流统计信息的粒度,分为30min、hour和day三种统计粒度,取值分别为1,2和32
callback调用结果

响应参数

字段名称 类型 描述
codeint 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211、220、265、266、267、277、280,见错误码的描述
dataPeopleStatBean返回码成功才会有此字段,详见RPCResponse.PeopleStatBean

4.获取指定时间内的路过人流统计信息

描述

获取指定某一时间内的经过人流统计信息,如果设备不存在这个时间内的信息则会返回错误。

接口

public void getPeopleStatPass(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse‹PassFlowBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
start_timeUnix格式时间戳,精确至秒,开始时间,时间是整小时或者整天或者半小时的时间戳,譬如2019-07-01,2019-07-01 10:00,或者
2019-07-01 10:30这样的时间对应的时间戳
1578969264
end_timeUnix格式时间戳,精确至秒,结束时间。时间要求同上 1579055640
period人流统计信息的粒度,分为30min、hour和day三种统计粒度,取值分别为1,2和32
callback调用结果

响应参数

字段名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211、220、265、266、267、277、280,见错误码的描述
dataPassFlowBean返回码成功才会有此字段,详见RPCResponse.PassFlowBean

5.获取指定时间内的离开人流统计信息

描述

获取指定某一时间内的人流统计信息,如果设备不存在这个时间内的信息则会返回错误。

接口

public void getPeopleStatOut(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse‹PassFlowBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
start_timeUnix格式时间戳,精确至秒,开始时间,时间是整小时或者整天或者半小时的时间戳,譬如2019-07-01,2019-07-01 10:00,或者
2019-07-01 10:30这样的时间对应的时间戳
1578969264
end_timeUnix格式时间戳,精确至秒,结束时间。时间要求同上 1579055640
period人流统计信息的粒度,分为30min、hour和day三种统计粒度,取值分别为1,2和32
callback调用结果

响应参数

字段名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211、220、265、266、267、277、280,见错误码的描述
dataOutFlowBean返回码成功才会有此字段,详见RPCResponse.OutFlowBean

6.获取指定时间内的到访列表

描述

获取指定时间内,来过次数排名前N的人脸ID列表信息。

接口

public void getVisitorList(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse‹VisitorListBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
options限定获取来访记录的参数见下options说明
callback调用结果

options说明

参数名称 类型 描述是否必须 示例
start_timelongUnix时间戳Y1578969264
end_timelongUnix时间戳Y1579055640
orderint表示抵达次数排名前order的人脸信息Y50
group_namestring指定某个人脸分组,默认为所有人脸分组Nvip
genderint性别,1表示男性,2表示女性,默认不分性别N1
age_rangeint年龄段,1表示1~6岁,2表示7~12岁,3表示13~18岁,4表示19~28岁,
5表示29~35岁,6表示36~45岁,7表示45~55岁,8表示55岁~100
N4
ageint年龄,与上面age_range是或的关系,不是与的关系。即查询age_range或
者age满足的人脸,只要有一个符合即可。
N4
item1string可以根据自定义属性来匹配,自定义属性1的匹配。如果需要使用自定义属
性查询,请确保指定的人脸分组添加过对应的自定义属性,否则查询失败(生
人与熟人分组不能添加自定义属性)
N value1
item2string自定义属性2的匹配N value2
item3string自定义属性3的匹配N value3
item4string自定义属性4的匹配N value4
item5string自定义属性5的匹配N value5
page_numint当前页码,默认值和最小值为1N1
page_sizeint当前页面条目数,默认为10,范围为[1, 100]N10

响应参数

参数名称 类型 描述
codeint 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211、220、265、266、267、277、280,见错误码的描述
dataVisitorListBean返回码成功才会有此字段,详见RPCResponse.VisitorListBean

7.获取指定人脸的到访记录

描述

查询指定某个人在指定时间内的到访记录。

接口

public void getFaceVisitDetail(String deviceId, long start_time, long end_time, String faceId, RPCCallback‹RPCResponse‹VisitDetailBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
start_timeUnix时间戳,开始时间1578969264
end_timeUnix时间戳,结束时间1579055640
faceId人脸ID 000001
callback调用结果

响应参数

字段名称类型描述
codeint 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211、220、265、266、267、277、280,见错误码的描述
dataVisitDetailBean返回码成功才会有此字段,详见RPCResponse.VisitDetailBean

FaceManage 人脸库管理接口

  1. 新建人脸分组
  2. 编辑人脸分组
  3. 设置生人到熟人的迁移条件
  4. 删除人脸分组
  5. 获取人脸分组列表
  6. 新增人脸的属性
  7. 删除人脸的属性
  8. 获取指定人脸分组新增属性列表
  9. 新增人脸
  10. 删除人脸
  11. 更新人脸
  12. 获取人脸
  13. 获取人脸列表
  14. 获取到达时间最旧的人脸

目前仅商米AI识客摄像机支持该模块。 当设备既绑定在数字店铺下,又激活了设备端API时,本节的编辑类接口不可用,即只能用到端API的人脸分组管理接口来管理人脸库。

1. 新建人脸分组

描述

通过此接口新建一个人脸分组,并配置其属性。人脸分组当前最多支持10个,系统默认存在两个人脸分组,分别是生人分组和熟人分组,即用户最多还可以创建8个分组。

接口

public void createGroup(String deviceId, String groupName, int capacity, String description, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
name 分组名称,不长于32个汉字,目前系统默认存在“生人”和 “熟人”两个分组生人
capacity 分组容量,所有分组容量加起来不得超过3W10000
description 分组的描述,不超过50个汉字。黑卡的客户
callback调用结果

注:

1. 名称第一个字符不得为空格 ;

2. 默认生人库名为stranger,默认熟人库名为regular 。

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、200、201、202、211、212、220,见错误码的描述

2. 编辑人脸分组

描述

通过此接口编辑指定人脸分组的属性。

接口

public void updateGroup(String deviceId, String oldGroupName, String groupName, int capacity, String description, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
oldGroupName 要编辑的人脸分组名称 黑卡客户
groupName 修改后的分组名称,可与旧的一样 金卡客户
capacity 修改后的分组容量,可与旧的一样 10000
description 分组的描述,不超过50个汉字。 办卡升级
callback调用结果

注:

1.修改默认生人分组和熟人分组的属性时候,name必须与old_name一致,即不允许修改默认分组的组名;

2.名称第一个字符不得为空格。

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、200、201、202、204、211、212、220,见错误码的描述

3. 设置生人到熟人的迁移条件

描述

系统在激活时会默认创建生人分组和熟人分组两个组,且设备会默认把某个生人来的次数满足一定条件(默认7天内来了5次)的情况下,自动把这个生人移动到熟人分组。

通过此接口可修改生人移动到熟人分组的移动条件。

接口

public void updateMigration(String deviceId, int arrive_times, int period, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
arrive_times 必选,生人分组才需要的属性,取值范围1~10 5
period 必选,生人分组才需要的属性,取值范围1~100,单位为天 20
callback调用结果

注:

arrive_times和period是生人分组才需要修改的属性,代表一个生人在一定时间内(period设置,单位为天)来过多少次(arrive_times设置)就移动到熟人分组中去。 

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、211、220,见错误码的描述

4. 删除人脸分组

描述

删除指定人脸分组。

接口

public void deleteGroup(String deviceId, String groupName, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
groupName 要删除的分组名称,生人和熟人分组不能被删除,分组中有人脸也不能删除,只能先清空。 黑卡客户
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、201、204、205、211、220,见错误码的描述

5. 获取人脸分组列表

描述

通过此接口获取IPC上所有的人脸分组信息。

接口

public void getGroupList(String deviceId, RPCCallback‹RPCResponse‹GroupBean›› callback);

参数说明

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

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211、220,见错误码的描述
dataGroupBean返回码成功才会有此字段,详见RPCResponse.GroupBean

6. 新增人脸的属性

描述

库中给每个人脸预置了一些属性,可以通过此接口为指定人脸分组中的人脸增加最多5个属性。

强烈建议在创建新分组后添加人脸前,按需求先调用本接口添加人脸的属性,而不是在添加人脸后中途调用本接口添加人脸ID属性。

接口

public void addFaceInfoItem(String deviceId, String groupName, List‹String› attrs, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
groupName 人脸分组名称 vip
attrs 类型为数组,属性名称列表,每个属性类型是string,属性长度最大为50字节 [“hobby”]
callback调用结果

注:

1. 默认库不允许添加人脸ID属性;

2. 以下字段作为保留字段,不允许作为新添加的属性名: group_name, pic, age, gender, faceid, age_range, arrive_times, pic_url, total_num, return_num。

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、211、220、240、241、242,见错误码的描述

7. 删除人脸的属性

描述

对于指定分组中的自定义属性,用户可以在不需要的时候删除,这里建议用户不要轻易删除。

接口

public void removeFaceInfoItem(String deviceId, String groupName, List‹String› attrs, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
groupName 人脸分组名称 vip
attrs 类型为数组,属性名称列表,每个属性类型是string,属性长度最大为50字节 [“hobby”]
callback调用结果

注:

默认库不允许删除人脸ID属性

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、211、220、240、241、242、243,见错误码的描述

8. 获取指定人脸分组新增属性列表

描述

通过此接口可以查询某个特定人脸分组中用户通过2.4.6指令添加的所有属性列表。

接口

public void getFaceInfoItem(String deviceId, String groupName, RPCCallback‹RPCResponse‹AttributesBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
groupName分组名称 stranger
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、211、220,见错误码的描述
dataAttributesBean返回码成功才会有此字段,详见RPCResponse.AttributesBean

9. 新增人脸

描述

通过此接口可以向某个特定的人脸分组增加新人脸,并给每个人脸配置相关属性值。一次增加一个人脸。

接口

public void addFaceRecord(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
options人脸记录相关属性参数,详见以下options说明
callback调用结果

options说明

参数名称 类型 描述 是否 必须 示例
faceidstring人脸id,不超过16个英文字符YVip11024
pic file jpg/png格式的人脸图片文件,最大分辨率为1920*1080,大小在1MB以内 Y 11024.jpg
group_name string 分组名称 Y stranger
age int 预置属性,年龄 N 14
gender int 预置属性,性别,0表示未知,1表示男性,2表示女性 N 1
item1 string 自定义属性1 N value1
item2 string 自定义属性2 N value2
item3 string 自定义属性3 N value3
item4 string 自定义属性4 N value4
item5 string 自定义属性5 N value5

注:

1.上面的预置属性是IPC数据库中内置的人脸具备的属性,其他的item1/item2/item3/item4/item5是用户自定义属性,若要使用自定义属性,则要调用2.4.6一节的接口来添加自定义属性,如果用户没有先添加人脸属性,直接在这个接口加上对应属性的key-value,IPC设备是不会处理那些属性的;

2.对于age属性,如果不设定,则会由摄像头自动设置此人的年龄段;

3.对于gender,如果不设定,则会由摄像头自动设置此人的性别。

响应参数

字段名称 类型 描述 示例
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、206、208、210、211、220,见错误码的描述

10. 删除人脸

描述

通过此接口可以删除指定人脸分组中的某些人脸。

接口

public void deleteFaceRecord(String deviceId, String groupName, List‹String› faceidList, RPCCallback‹RPCResponse‹FaceDeleteSubResult›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
groupName 分组名称 vip
faceidList 人脸I列表 [“1988″,”2020”]
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、211、220,见错误码的描述
dataFaceDeleteSubResult返回码成功才会有此字段,详见RPCResponse.FaceDeleteSubResult

11. 更新人脸

描述

更新指定的人脸信息。

接口

public void updateFaceRecord(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
options人脸记录相关属性参数,详见以下options说明
callback调用结果

options说明

参数名称 类型 描述 是否必须 示例
group_name string 人脸分组名称 Y stranger
faceid string 人脸ID Y 21
new_group_name string 新人脸分组名称 N VIP
pic file jpg/png格式的人脸图片文件,最大分辨率为1920*1080,大小不超过1MB N example.jpg
age int 预置属性,年龄 N 10
gender int 性别,可更新为1表示男性、2表示女性 N 1
item1 string 自定义属性1 N value1
item2 string 自定义属性2 N value2
item3 string 自定义属性3 N value3
item4 string 自定义属性4 N value4
item5 string 自定义属性5 N value5

响应参数

参数名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、204、207、208、210、211、220,见错误码的描述

注:

上述 hobby、vip_level、weight、phone_num 是用户自定义属性,对应item1/item2/item3/item4,自定义属性可以通过 2.4.6 一节的接口来添加。添加之后方可使用。

12. 获取人脸

描述

通过指定人脸ID获取人脸信息。

接口

public void getFaceRecord(String deviceId, String faceId, RPCCallback‹RPCResponse‹FaceRecordBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
faceId人脸ID105
callback调用结果

响应参数

参数名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、211,见错误码的描述
dataFaceRecordBean返回码成功才会有此字段,详见RPCResponse.FaceRecordBean

注:

上述point、hobby、vip_level、weight、height是用户自定义属性,对应item1/item2/item3/item4/itme5,自定义属性可以通过2.4.6一节的接口来添加。添加之后才有返回这些属性。

13. 获取人脸列表

描述

获取指定人脸分组的所有人脸信息。

接口

public void getFaceRecordList(String deviceId, String groupName, int pageNum, int pageSize, RPCCallback‹RPCResponse‹FaceRecordListBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
page_num 当前页码,默认值和最小值为1
page_size当前页面条目数,默认为10,范围为[1, 100]
options 详见options说明
callback调用结果

options说明

参数名称 类型 描述 是否必须 示例
group_name string 人脸分组名称 Y VIP
page_num int 当前页码,默认值和最小值为1 N 4
page_size int 当前页面条目数,默认为10,范围为[1, 100] N 10

返回示例

{    
“code”: 0,    
“data”: {        
“total_num”: 2,        
“num”: 2,        
“faceid_list”: [            
{                
“arrive_time”: 1566215929,                
“arrive_count”: 2,                
“faceid”: “3”,                
“point”: “113”,         //自定义属性                
“gender”: 2,                
“vip_level”: “3”,       //自定义属性                
“hobby”: “tennis”,      //自定义属性                 
“weight”: “60”,         //自定义属性                
“height”: “180”,        //自定义属性                
“age”: 10,                
“age_range”: 2            
},            
{                
“arrive_time”: 1566215998                
“arrive_count”: 1                 
“faceid”: “4”,                
“point”: “113”,         //自定义属性                
“gender”: 1,                
“vip_level”: “1”,       //自定义属性                
“hobby”: “tennis”,      //自定义属性                
“weight”: “60”,         //自定义属性                
“height”: “180”,        //自定义属性                
“age”: 10,                
“age_range”: 2            
}        
]    
}
}

14. 获取到达时间最旧的人脸

描述

获取指定人脸分组按到达时间排序最旧的N条人脸信息。

接口

public void getFaceByArrival(String deviceId, String groupName, int num, RPCCallback‹RPCResponse‹FaceRecordListBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
groupName 人脸分组名称 VIP
num获取人脸数量,默认值和最小值为1,最大值为10 2
callback调用结果

响应参数

参数名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、207、211,见错误码的描述
dataFaceRecordListBean返回码成功才会有此字段,详见RPCResponse.FaceRecordListBean

返回示例

{
    “code”: 0,
    “data”: {
        “return_num”: 2,
        “faceid_list”: [
            {
                “faceid”: “8”,
                “arrive_time”: 1566215929,
                “arrive_count”: 7,
                “age_range”: 5,
                “gender”: 1,
                “age”: 0,
                “item1”:value1, //自定义属性   
                “item2”:value2, //自定义属性   
                “item3”:value3, //自定义属性   
                “item4”:value4, //自定义属性   
                “item5”:value5 //自定义属性               
            },
            {
                “faceid”: “10”,
                “arrive_time”: 1566110525,
                “arrive_count”: 6,
                “age_range”: 4,
                “gender”: 2,
                “age”: 0,
                “item1”: value1, //自定义属性   
                “item2”:value2, //自定义属性   
                “item3”:value3, //自定义属性   
                “item4”:value4, //自定义属性   
                “item5”:value5 //自定义属性                   
            }
        ]
    }
}

VideoStream 视频流接口

  1. 获取直播流
  2. 获取回放流
  3. 获取录像片段
  4. 获取当前快照
  5. 获取当前视频片段

1.获取直播流

描述

获取指定IPC直播流地址。

接口

public void getLiveStream(String deviceId, RPCCallback‹RPCResponse‹LiveAddress›› callback);

参数说明

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

响应参数

参数名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、232,见错误码的描述
dataLiveAddressBean返回码成功才会有此字段,详见RPCResponse.LiveAddressBean

2.获取回放流

描述

获取指定IPC回放流地址。

接口

public void getPlaybackStream(String deviceId, long startTime, long endTime RPCCallback‹RPCResponse‹PlaybackBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
start_time回放开始时间,unix格式的时间戳,秒级1578969264
end_time回放结束时间,unix格式的时间戳,秒级1579055640
callback调用结果

响应参数

参数名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、230、235,见错误码的描述
dataPlaybackBean返回码成功才会有此字段,详见RPCResponse.PlaybackBean

3.获取录像片段

描述

获取指定指定时间内的录像片段。

接口

public void getRecordList(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse‹VideoRecordBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
options获取的录像范围参数见下表options说明
callback调用结果

options说明

参数名称类型描述是否必须示例
start_timelong指定开始时间,unix格式的时间戳,秒级Y1578969264
end_timelong指定结束时间,unix格式的时间戳,秒级Y1579055640
page_numint当前页码,默认值和最小值为1N1
page_sizeint当前页面条目数,默认为10,范围为[1, 100]N10

响应参数

参数名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、231、234、235,见错误码的描述
dataVideoRecordBean返回码成功才会有此字段,详见RPCResponse.VideoRecordBean

4.获取当前快照

描述

获取指定IPC当前快照。

接口

public void getSnapshot(String deviceId, RPCCallback‹RPCResponse‹SnapshotBean›› callback);

参数说明

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

响应参数

参数名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、233,见错误码的描述
dataSnapshotBean返回码成功才会有此字段,详见RPCResponse.SnapshotBean

5.获取当前视频片段

描述

获取当前时间往前(和/或)往后一点时间的视频片段。

获取视频片段的粒度为4s,用户在调用该接口的时候,设备会在截取当前时间之前的一段视频(以4s为单位)+当前时间点的4s片段+当前时间之后的一段视频片段 (以4s为单位) ,并返回用户视频下载连接。

视频下载连接在调用完成后4~12s生效,生效时间与用户传入的following参数有关。

接口

public void getCurVideos(String deviceId, int preceding, int following, RPCCallback‹RPCResponse‹CurVideoBean›› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
preceding当前时间点之前的视频片段长度,只能是0,4,8 0
following当前时间点之后的视频片段长度,只能是0,4,8
callback调用结果8

响应参数

参数名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、236、237,见错误码的描述
dataCurVideoBean返回码成功才会有此字段,详见RPCResponse.CurVideoBean

BasicConfig 基本配置接口

  1. 设置无线参数
  2. 设置无线参数(无需签名校验)
  3. 获取无线参数
  4. 获取无线扫描AP列表
  5. 获取无线扫描AP列表 (无需签名校验)
  6. 调焦
  7. 手动聚焦
  8. 自动聚焦
  9. 调焦聚焦复位
  10. 获取调焦和聚焦参数
  11. 设置夜视模式
  12. 获取夜视模式
  13. 设置动态侦测
  14. 获取动态侦测参数
  15. 设置IPC名称
  16. 获取IPC名称
  17. 设置指示灯开关
  18. 获取指示灯开关
  19. 设置画面旋转角度
  20. 获取画面旋转角度
  21. 获取支持的画面旋转角度
  22. 格式化存储卡
  23. 获取存储卡状态

1. 设置无线参数

描述

配置IPC连接AP的SSID和密码。

接口

public void setWifiConf(String deviceId, String ssid, String password, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
ssid要连接的AP的无线名称,也即SSID,不能超过32个字符WeWork
password要连接的AP的密码,如果无加密,填空即可,不支持WEP,不能超过64个字符12345678
callback调用结果

响应参数

字段名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、2、3、5、7、100、101,见错误码的描述

2. 设置无线参数(无需签名校验)

描述

设备激活前无需签名校验配置 IPC 连接 AP 的 SSID 和密码;设备激活后此接口即失效。

接口

public void setWifiConfWithoutAuth(String deviceId, String ssid, String password, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
ssid要连接的AP的无线名称,也即SSID,不能超过32个字符WeWork
password要连接的AP的密码,如果无加密,填空即可,不支持WEP,不能超过64个字符12345678
callback调用结果

响应参数

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

3. 获取无线参数

描述

获取当前IPC的无线参数。

接口

public void getWifiConf(String deviceId, RPCCallback‹RPCResponse‹WifiConfBean›› callback);

参数说明

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

响应参数

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

回调示例

后续接口回调实现与此类似,后续不再进行说明。

new RPCCallback‹RPCResponse‹WifiConfBean››() {
    @Override
    public void onComplete(RPCResponse‹WifiConfBean› result) {
        if (result.code() == RPCErrorCode.SUCCESS) {
            WifiConfBean wifiConf = result.data();
        } else {
            shotToast("response.code: " + result.code());
        }
    }

    @Override
    public void onAbort(int httpStatus) {
        shotToast("http failed, status: " + httpStatus);
    }

    @Override
    public void onException(Throwable t) {
        shotToast("Exception: " + t.getMessage());
    }
});

4. 获取无线扫描AP列表

描述

获取当前IPC无线扫描到的AP列表。

接口

public void getApList(String deviceId, RPCCallback‹RPCResponse‹IpcApBean›› callback);

参数说明

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

响应参数

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

5. 获取无线扫描AP列表 (无需签名校验)

描述

获取当前IPC无线扫描到的AP列表,设备激活后此接口失效。

接口

public void getApListWithoutAuth(String deviceId, RPCCallback‹RPCResponse‹IpcApBean›› callback);

参数说明

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

响应参数

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

6. 调焦

描述

用户根据实际环境,调节镜头的焦距,使得拍摄的画面放大或者缩小。

接口

public void setZoom(String deviceId, int zoom, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
zoom焦距大小,合理范围是[0, 500]200
callback调用结果

响应参数

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

7. 手动聚焦

描述

调焦后镜头会自动聚焦,如果对自动聚焦效果不满意,可以调用此接口手动进行微调。

接口

public void manualFocus(String deviceId, int focus, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
focus聚焦大小,合理范围是[0, 780]200
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、111,见错误码的描述

8. 自动聚焦

描述

设置焦距后,IPC会自动聚焦,可以设置自动聚焦以哪个点(坐标)为中心进行。

接口

public void autoFocus(String deviceId, int focus_x, int focus_y, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述 示例
deviceIdIPC序列号C201D98T00094
focus_x 聚焦点在x方向的像素百分比,合理范围是[0, 100] 50
focus_y 聚焦点在y方向的像素百分比,合理范围是[0, 100] 50
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、112,见错误码的描述

9. 调焦聚焦复位

描述

用户可以通过此接口直接复位焦距和聚焦的参数。

接口

public void resetZoomFocus(String deviceId, RPCCallback‹RPCResponse› callback);

参数说明

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

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7,见错误码的描述

10. 获取调焦和聚焦参数

描述

获取当前IPC镜头的调焦聚焦参数。

接口

public void getZoomFocusConf(String deviceId, RPCCallback‹RPCResponse‹ZoomFocusBean›› callback);

参数说明

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7,见错误码的描述
dataZoomFocusBean返回码成功才会有此字段,详见RPCResponse.ZoomFocusBean

11. 设置夜视模式

描述

配置镜头的夜视模式。

接口

public void setIrMode(String deviceId, int irmode, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述 示例
deviceIdIPC序列号C201D98T00094
irmode 0表示关闭,1表示开启,2表示自动。一般选2。 2
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、113,见错误码的描述

12. 获取夜视模式

描述

获取当前IPC的夜视模式。

接口

public void getIrMode(String deviceId, RPCCallback‹RPCResponse‹IrSettingBean›› callback);

参数说明

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7,见错误码的描述
dataIrSettingBean返回码成功才会有此字段,详见RPCResponse.IrSettingBean

13. 设置动态侦测

描述

IPC的动态侦测支持根据画面变化和声音变化灵敏度来检测和报警,通过本API可以设置相关灵敏度和动态侦测的时间。

接口

public void setDynamicDetect(String deviceId, HashMap‹String, String› options, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
options可设置的动态侦测的参数集合见下表option说明
callback调用结果

option说明

参数名称 类型 描述 是否必须 示例
motion_level int范围[0, 3],0表示关闭,数值越大,越灵敏。 Y 2
audio_level int 范围[0, 3],0表示关闭,数值越大,越灵敏。 Y 2
weekday int 以周为一个循环,用0xYY来表示选择哪一天,具体是0x80直接表示7×24小时,其余的,
以7bit来表示哪一天被选上,0x01表示选择周一,0x02表示选择周二,0x40表示选择
周天,0x7f表示选择一个礼拜的7天,与0x80的区别只是0x80直接默认724小时,而
0x7f选了7天后,还可以设置具体的开始时间和结束时间。
Y 128(0x80 的十进制)
start_time long用分钟来表示,以一天24小时为例,以分钟为最小粒度,总共24*60这样的时间数值,
60表示01:00,121表示02:01,依次类推。范围[0,1440]
Y 200
stop_time long 用分钟来表示,以一天24小时为例,以分钟为最小粒度,总共24*60这样的时间数值,
60表示01:00,121表示02:01,依次类推。范围[0,1440]
Y 400

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7,见错误码的描述

14. 获取动态侦测参数

描述

获取当前IPC镜头的动态侦测参数。

接口

public void getDynamicDetect(String deviceId, RPCCallback‹RPCResponse‹DynamicDetectBean›› callback);

参数说明

本接口没有私有参数,公共参数见HTTP接口调用

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7,见错误码的描述
dataDynamicDetectBean返回码成功才会有此字段,详见RPCResponse.DynamicDetectBean

15. 设置IPC名称

描述

用户可以设置IPC的名称,以便区分不同的IPC设备。

接口

public void updateName(String deviceId, String name, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述 示例
deviceIdIPC序列号C201D98T00094
name 36个字符以内,12汉字以内 示例名称
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、118,见错误码的描述

16. 获取IPC名称

描述

获取当前IPC的名称。

接口

public void getName(String deviceId, RPCCallback‹RPCResponse‹IPCNameBean›› callback);

参数说明

本接口没有私有参数,公共参数见HTTP接口调用

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7,见错误码的描述
dataIPCNameBean 返回码成功才会有此字段,详见RPCResponse.IPCNameBean

17. 设置指示灯开关

描述

设置指示灯是否需要关闭。

接口

public void setLedSwitch(String deviceId, int ledSwitch, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述 示例
deviceIdIPC序列号C201D98T00094
led_switch 0表示关闭指示灯,1表示开启指示灯,即可以亮 1
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、119, 见错误码的描述

18. 获取指示灯开关

描述

获取当前IPC的指示灯状态。

接口

public void getLedSwitch(String deviceId, RPCCallback‹RPCResponse‹LedSettingBean›› callback);

参数说明

本接口没有私有参数,公共参数见HTTP接口调用

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7, 见错误码的描述
dataLedSettingBean返回码成功才会有此字段,详见RPCResponse.LedSettingBean

19. 设置画面旋转角度

描述

设置拍摄的画面是否需要旋转一定角度,可用的旋转角度可通过获取支持的画面旋转角度获取到。

接口

public void setRotation(String deviceId, int rotation, RPCCallback‹RPCResponse› callback);

参数说明

这里只列出接口的私有参数,公共参数见HTTP接口调用

参数名称描述 示例
deviceIdIPC序列号C201D98T00094
rotation 画面旋转角度
对于FM010,支持的参数有0,90,180,270;
对于FM020,支持的参数有0,180
180
callback调用结果

响应参数

字段名称 类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、120, 见错误码的描述

20. 获取画面旋转角度

描述

获取当前IPC当前的画面旋转角度。

接口

public void getRotation(String deviceId, RPCCallback‹RPCResponse‹RotationBean›› callback);

参数说明

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7, 见错误码的描述
dataRotationBean返回码成功才会有此字段,详见RPCResponse.RotationBean
对于FM010,支持的参数有0,90,180,270;
对于FM020,支持的参数有0,180

21. 获取支持的画面旋转角度

描述

获取当前IPC设备支持的画面旋转角度。

接口

public void getSupportRotationAngles(String deviceId, RPCCallback‹RPCResponse‹SupportRotationsBean›› callback);

参数说明

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7, 见错误码的描述
dataSupportRotationsBean返回码成功才会有此字段,详见RPCResponse.SupportRotationsBean
对于FM010,支持的参数有0,90,180,270;
对于FM020,支持的参数有0,180

22. 格式化存储卡

描述

格式化插入IPC里面的存储卡。

接口

public void formatMemoryCard(String deviceId, RPCCallback‹RPCResponse› callback);

参数说明

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

响应参数

参数名称类型 描述
code int 返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7、220、221, 见错误码的描述

23. 获取存储卡状态

描述

获取IPC上存储卡状态

接口

public void getMemoryCardStatus(String deviceId, RPCCallback‹RPCResponse‹ExternalStorageBean›› callback);

参数说明

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

响应参数

类型 描述
int返回码,表示操作的结果;
本接口返回码有:0、1、3、5、7, 见错误码的描述
ExternalStorageBean返回码成功才会有此字段,详见RPCResponse.ExternalStorageBean

DeviceManage 设备管理接口

  1. 激活设备
  2. 获取设备基本信息
  3. 恢复出厂设置
  4. 重启设备

1.激活设备

描述

使用设备前调用此接口激活设备,使用前确保设备是联网的。

激活设备后会新建两个默认的人脸分组,名称分别为新客stranger和熟客regular,如果在已经有人脸分组的条件下去激活,则会先删除所有的人脸分组,然后再新建默认库。

接口

public void activate(String deviceId, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
deviceIdIPC序列号C201D98T00094
callback 激活结果

响应参数

响应参数指的是回调函数返回的RPCResponse,后续不再说明。

字段名称类型描述
codeint返回码,表示操作的结果;
本接口返回码有 0、1、2、3、4、8、9、10、11,见错误码章节的描述

示例代码

IPCameraManager.getInstance(context).init(APP_ID, SECRET_KEY, LICENSE);
DeviceManage.getInstance(context).activate(ipcList.get(postion).getDeviceid(), new RPCCallback‹RPCResponse›() {
    @Override
    public void onComplete(RPCResponse result) {
        Log.i(TAG, "return code= " + result.code());
        if (result.code() == RPCErrorCode.SUCCESS || result.code() == RPCErrorCode.DEVICE_ACTIVATED) {
            Log.i(TAG, "ipc activate success");
        }else if(result.code() == RPCErrorCode.DEVICE_ACTIVATED) {
            Log.i(TAG, "ipc has been activated");
        } else {
            Log.i(TAG, "ipc activate failed, code:" + result.code());
        }
    }

    @Override
    public void onError(Throwable t) {
        Log.i(TAG, t.getMessage());
    }
});

返回示例

{
  "code":0
}

2.获取设备基本信息

描述

使用此接口可以获取设备的基本信息。

接口

public void getInfo(String deviceId, RPCCallback‹RPCResponse‹IpcInfoBean›› callback);

参数说明

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

响应参数

字段名称 类型描述
codeint返回码,表示操作的结果;
本接口返回码有 0、1、2、3、4、8、9、10、11,见错误码章节的描述
dataIpcInfoBean 返回码成功才会有此字段,详见RPCResponse.IpcInfoBean

示例代码

IPCameraManager.getInstance(context).init(APP_ID, SECRET_KEY, LICENSE);
DeviceManage.getInstance(context).getInfo(ipcList.get(postion).getDeviceid(), new RPCCallback‹RPCResponse‹IpcInfoBean››() {
    @Override
    public void onComplete(RPCResponse‹IpcInfoBean› result) {
        if (result.code() == RPCErrorCode.SUCCESS) {
            IpcInfoBean info = result.data();
            Log.i(TAG, "getInfo success, ip: " + info.ip);
        } else {
            Log.i(TAG, "getInfo failed, code:" + result.code());
        }
    }

    @Override
    public void onError(Throwable t) {
        Log.i(TAG, t.getMessage());
    }
});

返回示例

{
  "code": 0,
    "data": {
      "sn": "SS101D8BS00083",
      "model_name": "FM020",
      "name": "My FS",
      "software_version": "1.1.0",
      "hardware_version": "1.0.0",
      "ip": "192.168.0.1",
      "mac": "04:12:24:E3:45:12 ",
    }
}

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

3.恢复出厂设置

描述

使用此接口可以使得设备恢复出厂设置。

接口

public void reset(String deviceId, RPCCallback‹RPCResponse› callback);

参数说明

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

响应参数

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

4.重启设备

描述

使用此接口可以重启设备。

接口

public void reboot(String deviceId, RPCCallback‹RPCResponse› callback);

参数说明

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

响应参数

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

IPCameraManager 接口

  1. 注册设备发现回调
  2. 注销设备发现回调
  3. 重新扫描设备
  4. 获取设备列表
  5. 注册人脸识别事件回调
  6. 注销人脸识别事件回调
  7. 注册动态侦测事件回调
  8. 注销动态侦测事件回调
  9. 设置人脸库模式
  10. 增加人脸记录
  11. 删除人脸记录

1. 注册设备发现回调

描述

注册设备发现回调,在IPC设备接入/离开网络时被调用,设备离线30S内回调离线消息。

接口

public void registerDeviceTrackListener(DeviceTrackListener listener);

参数说明

参数名称描述示例
listener设备发现回调

代码示例

APP_ID:激活设备端API所需的账号
SECRET_KEY:调用API所需的签名秘钥
LICENSE:设备激活码,激活设备端API所需的激活码,用于签名校对软件商是否有权调用

IPCameraManager mIPCameraManager = IPCameraManager.getInstance(context);
mIPCameraManager.init(APP_ID, SECRET_KEY, LICENSE);
mIPCameraManager.registerDeviceTrackListener(new DeviceTrackListener() {
    @Override
    public void onDeviceOnline(IPCameraInfo device) {
        showToast(getApplicationContext(), "[ " + device.getDeviceid() + " ]上线");
    }
    @Override
    public void onDeviceOffline(IPCameraInfo device) {
        showToast(getApplicationContext(), "[ " + device.getDeviceid() + " ]离线");
    }
});

2. 注销设备发现回调

描述

注销设备发现回调。

接口

public void unregisterDeviceTrackListener(DeviceTrackListener listener);

参数说明

参数名称描述示例
listener设备发现回调

3. 重新扫描设备

描述

使用此接口可以清楚设备缓存队列,重新触发设备上线回调。

接口

public void rescan();

4. 获取设备列表

描述

获取当前在线的IPC设备列表。

接口

public List‹IPCameraInfo› getIPCDevices();

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

描述

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

接口

public void registerFaceDetectListener(FaceDetectListener listener);

参数说明

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

代码示例

IPCameraManager mIPCameraManager = IPCameraManager.getInstance(context);
mIPCameraManager.init(APP_ID, SECRET_KEY, LICENSE);
mIPCameraManager.registerFaceDetectListener(new FaceDetectListener() {
    @Override
    public void onFaceDetect(FaceRecogEvent faceRecogEvent) {
        if (userName == null) {
            showToast("发现未注册的用户");
        } else {
            showToast("发现用户[ " + faceRecogEvent.faceid + " ]");
        }
    }
});

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

描述

注销人脸识别事件回调。

接口

public void unregisterFaceDetectListener(FaceDetectListener listener);

参数说明

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

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

描述

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

接口

public void registerDynamicDetectListener(DynamicDetectListener listener);

参数说明

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

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

描述

注销动态侦测事件回调。

接口

public void unregisterDynamicDetectListener(DynamicDetectListener listener);

参数说明

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

代码示例

IPCameraManager mIPCameraManager = IPCameraManager.getInstance(context);
mIPCameraManager.init(APP_ID, SECRET_KEY, LICENSE);
mIPCameraManager.registerDynamicDetectListener(new DynamicDetectListener() {
    @Override
    public void onDynamicDetect(DynamicDetectEvent dynamicDetectEvent) {
        showToast("设备" + dynamicDetectEvent.sn + "触发了" + dynamicDetectEvent.detect_type "事件");
    }
});

9. 设置人脸库模式

描述

设置IPC设备中人脸库使用方法,该接口在FS与商米AI识客SDK配套时使用。

接口

public void setDeviceDatabaseMode(boolean useSingleGroup);

参数说明

参数名称描述示例
useSingleGrouptrue:IPC自动创建一个包含所有库容量的人脸分组,不需要客户自己创建人脸分组。
false:默认值,需要客户自己创建人脸分组。
true

代码示例

IPCameraManager mIPCameraManager = IPCameraManager.getInstance(context);
mIPCameraManager.init(APP_ID, SECRET_KEY, LICENSE);
mIPCameraManager.setDeviceDatabaseMode(true);
...

10. 增加人脸记录

描述

给所有在线的IPC设备增加人脸记录,使用该接口前必须设置setDeviceDatabaseMode(true),该接口在FS与商米AI识客SDK配套时使用。

接口

public boolean addFaceRecord(String picPath, String userId, RPCCallback‹RPCResponse› callback);

参数说明

参数名称描述示例
picPath人脸照片的路径“/mnt/sdcard/1424.jpg”
userId要增加的人脸记录ID“sunmi1424”
callback增加人脸记录的回调

11. 删除人脸记录

描述

给所有在线的IPC设备删除人脸记录, 使用该接口前必须设置setDeviceDatabaseMode(true) ,该接口在FS与商米AI识客SDK配套时使用。

接口

public boolean deleteFaceRecord(String userId, RPCCallback‹RPCResponse‹FaceDeleteSubResult›› callback)

参数说明

参数名称描述示例
userId要删除的人脸记录ID“sunmi1424”
callback删除人脸记录的回调