智能终端开放接口

一、更改历史

迭代时间 迭代内容
2022.08.26 base_open.aar 1.0.0-1版本
2022.8.29 修改此文档:
1.部分接口描述修改
2.detectFace接口增加参数,单人识别或多人识别
2022.10.27 base_open_1.0.1_2.aar库更新
changelist:
1.新增appkey授权
2022.11.18 base_open_1.0.2_3.aar库更新
changelist:
1.新增sdk保存log入口
2025.01.16 新增行业智能终端开放

二、系统拓扑

前提条件(必读)

使用业务接口前,需先区分设备所使用环境,钉钉和行业在部分参数调用存在差异,可以包对应的文档为准:
【钉钉终端应用】设备激活方式使用手机钉钉扫码设备上的二维码(手机扫设备蓝牙激活)
【行业终端应用】设备激活方式使用手机扫码生成配置二维码后出示给设备(设备扫手机二维码激活)

三、钉钉终端应用接入指南

3.1、接入流程

1.环境搭建

第三方应用开发者拿到魔点开放sdk后,需要把aar文件置于libs目录下,通过gradle加载开放sdk

2.启动配置

调用开放sdk前需要在AndroidManifest.xml文件中配置启动界面的action,魔点应用会在每次启动后判断第三方应用是否存在,如果存在则会拉起第三方应用

  1. <activity android:name=".MainActivity"
  2. android:exported="true"
  3. android:launchMode="singleTask">
  4. <intent-filter>
  5. <action android:name="android.intent.action.MAIN" />
  6. <category android:name="android.intent.category.LAUNCHER" />
  7. </intent-filter>
  8. <intent-filter>
  9. <action android:name="com.moredian.open.start" />
  10. <category android:name="android.intent.category.DEFAULT" />
  11. </intent-filter>
  12. </activity>

3.sdk初始化

调用魔点开放open sdk之前,需要通过MdOpenServer初始化sdk,appKey通过魔点开放平台申请;
钉钉终端应用和行业终端应用初始化SDK有些许差异,具体可咨询终端应用对接群;

  1. private void initOpenServer() {
  2. MdOpenServer.getInstance().init(this,this);
  3. MdOpenServer.getInstance().register(appKey);
  4. }

4.数据监听

初始化成功后再去注册数据回流监听

  1. @Override
  2. public void onInitCallBack(boolean isSuccess, String message) {
  3. Log.d(TAG, "onInitCallBack: isSuccess="+isSuccess+",message="+message);
  4. isInitSuccess = isSuccess;
  5. if (isSuccess){
  6. mOpenListener = new OpenListener();
  7. MdOpenServer.getInstance().registerListener(mOpenListener);
  8. getDeviceMode();
  9. getDeviceBaseInfo();
  10. }else {
  11. if (mOpenListener != null){
  12. MdOpenServer.getInstance().unRegisterListener(mOpenListener);
  13. }
  14. }
  15. }

5.sdk注销

应用或者界面销毁,初始化回调失败,需要通过unRegisterListener注销历史的回流监听,否则下次再次注册,会返回多条相同的数据

3.2、业务接口

名词解释

数据回流类OpenInitListener

  1. private class OpenListener extends IOpenListener.Stub {
  2. @Override
  3. public void dataCallBack(String action, String result) throws RemoteException
回调方法 参数 类型 描述
dataCallBack action String 发起调用open sdk的动作
dataCallBack result String json格式回调

1.sdk初始化

  1. /**
  2. * sdk初始化
  3. * @param context 系统上下文
  4. * @param openInitListener 初始化回调
  5. */
  6. @Override
  7. public void init(@NonNull Context context, OpenInitListener openInitListener)
方法名 参数 类型 是否必填 描述
init context Context 上下文
init openInitListener OpenInitListener 初始化回调

2.sdk注册

  1. /**
  2. * sdk注册
  3. */
  4. @Override
  5. public void register()

3.sdk注销

应用销毁后应及时注销sdk,注销后,sdk会断开连接,同时释放持有的资源

  1. /**
  2. * sdk注销
  3. */
  4. @Override
  5. public void release()

4.注册数据回流监听

  1. /**
  2. * 注册数据回流
  3. * @param listener
  4. */
  5. @Override
  6. public void registerListener(IOpenListener listener)
方法名 参数 是否必填 描述
registerListener IOpenListener 继承自IOpenListener.Stub的回调

5.注销数据回流监听

  1. /**
  2. * 注销数据回流
  3. * @param listener
  4. */
  5. @Override
  6. public void unRegisterListener(IOpenListener listener)
方法名 参数 是否必填 描述
unRegisterListener IOpenListener 继承IOpenListener.Stub的回调

6.获取sdk版本号

  1. /**
  2. * 获取sdk版本号
  3. * @return
  4. */
  5. @Override
  6. public int getVersionCode()

7.获取sdk版本名

  1. /**
  2. * 获取sdk版本名
  3. * @return
  4. */
  5. @Override
  6. public String getVersionName()

8.获取设备信息

  1. /**
  2. * 获取设备基本信息
  3. * @return
  4. */
  5. @Override
  6. public String getDeviceBaseInfo()

返回结果:

  1. {"sn":"090902190730KN0015","romVersion":20124,"romVersionName":"2.1.24.0","appVersion":2158,"appVersionName":"V1001.2.0.0-xtest"}
参数名 类型 描述
sn String 设备唯一标记
romVersion long rom版本号
romVersionName String rom版本名
appVersion int 魔点app版本号
appVersionName String 魔点app版本名

9.获取设备device host模式

  1. /**
  2. * 获取设备device host模式
  3. * @return 1 host模式 0 device模式 -1 获取失败
  4. */
  5. @Override
  6. public int getDeviceHostMode()

设备系统每次启动默认处于host模式
device模式:usb线连接adb时设备必须处于device模式
host模式:以太网正常工作时必须处于host模式

10.切换设备device host模式

  1. /**
  2. * 切换设备device host 模式
  3. * @param model 1 host模式 0 device模式
  4. */
  5. @Override
  6. public void swicthDeviceHostMode(int model)

每次切换模式后,因为切换存在延迟,若需要通过getDeviceHostMode获取当前模式,需要延迟1秒以上,否则获取到的状态可能有误

11.开启网络adb

  1. /**
  2. * 是否开启网络adb
  3. * @param enable true开启 false 关闭
  4. */
  5. @Override
  6. public void enableAdb(boolean enable)

12.开启设备调试输出

  1. /**
  2. * 是否设备日志logcat输出
  3. * @param enable true开启 false 关闭
  4. */
  5. @Override
  6. public void enableLogcat(boolean enable)

13.设置刷脸模式

  1. /**
  2. * 设置识别模式
  3. * @param mode 1多人识别 2单人识别
  4. */
  5. @Override
  6. public void setRecognizeMode(int mode)
方法名 参数 类型 是否必填 描述
setRecognizeMode mode int - 1多人识别 2单人识别

14.调用刷脸

  1. /**
  2. * 调用刷脸
  3. * @param timeOut 刷脸超时时间
  4. */
  5. @Override
  6. public void detectFace(int timeOut)
方法名 参数 类型 是否必填 描述
detectFace timeOut(秒) int 跳转到刷脸页后,超时自动返回三方应用,默认60秒

结果通过IOpenListener回调返回
回调action: detect_face
识别成功json:

  1. {"data":{"personId":"10021","personName":"xxx","sceneType":0,"temperature":0.0},"message":"识别成功","result":"200"}

识别失败json:

  1. {"message":"识别失败,陌生人","result":"400"}

15.调用刷卡

  1. /**
  2. * 调用刷卡
  3. * @param timeOut 刷卡超时时间
  4. */
  5. @Override
  6. public void swipCard(int timeOut)
方法名 参数 类型 是否必填 描述
swipCard timeOut(秒) int 跳转到刷卡页后,超时自动返回三方应用,默认60秒

结果通过IOpenListener回调返回
回调action: swipe_card
成功json:

  1. {"data":"2037175851","result":"200","message":"刷卡成功"}

失败json:

  1. {"message":"设备不支持刷卡","result":"400"}

16.调用扫码

  1. /**
  2. * 调用扫码
  3. * @param timeOut 扫码超时时间
  4. */
  5. @Override
  6. public void scanQrCode(int timeOut)
方法名 参数 类型 是否必填 描述
scanQrCode timeOut(秒) int 跳转到扫码页后,超时自动返回三方应用,默认60秒

回调action: scan_qr_code
成功json:

  1. {"data":"www.moredian.com","result":"200","message":"扫码成功"}

失败json:

  1. {"message":"设备不支持扫码","result":"400"}

17.通过卡号获取人员信息

  1. /**
  2. * 通过卡号获取用户信息
  3. * @param cardNo
  4. */
  5. @Override
  6. public void getUserInfoByCard(String bizNo, @NonNull String cardNo)
方法名 参数 类型 是否必填 描述
getUserInfoByCard bizNo String 业务流水号,需要保证唯一性,设置后魔点开放服务会携带该参数返回
getUserInfoByCard cardNo String 通过卡号获取用户信息,需要提前在魔点微应用绑定人员和卡号关系

回调action: get_user_info
成功json:

  1. {"data":{"bizNo":"xxxxxxxxxxxxx""cardNum":"2037175851","dingUserId":"1000","id":32909,"name":"xxx","status":1},"message":"query card info success","result":"200"}

失败json:

  1. {"message":"query card info fail","result":"400"}

18.重启设备

  1. /**
  2. * 重启设备
  3. */
  4. @Override
  5. public void reboot()

19.开门

  1. /**
  2. * 开门
  3. */
  4. @Override
  5. public void openDoor(boolean isUserDefaultTime, long openDoorTime)
方法名 参数 类型 是否必填 描述
openDoor isUserDefaultTime boolean 是否使用开放服务默认开门时间
openDoor openDoorTime Long 毫秒,自定义开门时间,isUserDefaultTime false生效

20.设备音量配置

设置了不在0-100范围内的数据,sdk会抛出异常,需要手动捕获

  1. /**
  2. * 设置设备音量
  3. * @param volume 0-100内整数
  4. */
  5. @Override
  6. public void controlVolume(int volume)
方法名 参数 类型 是否必填 描述
controlVolume volume int 配置设备整体音量大小
范围:0-100

21.设备led补光灯亮度配置

设置了不在0-255范围内的数据,sdk会抛出异常,需要手动捕获

  1. /**
  2. * 设置led补光灯亮度
  3. * @param value 0-255内整数
  4. */
  5. @Override
  6. public void controlLed(int value)
方法名 参数 类型 是否必填 描述
controlLed value int 配置设备led亮度
范围:0-255

22.设备屏幕亮度配置

设置了不在0-255范围内的数据,sdk会抛出异常,需要手动捕获

  1. /**
  2. * 设置屏幕亮度
  3. * @param value 0-255内整数
  4. */
  5. @Override
  6. public void controlScreenLight(int value)
方法名 参数 类型 是否必填 描述
controlScreenLight value int 配置设备屏幕亮度
范围:0-255

23.离线语音合成和播放

  1. /**
  2. * 离线语音合成播放
  3. * @param content
  4. */
  5. @Override
  6. public void playTts(String content)

回调action: play_tts
成功json:

  1. {"message":"播放成功","result":"200"}

失败json:

  1. {"message":"TTS组件未初始化","result":"400"}

24.无线网络配置

  1. /**
  2. * 无线网络配置
  3. * @param timeOut 无线网络配置超时时间
  4. */
  5. @Override
  6. public void startWifiSet(int timeOut)
方法名 参数 类型 是否必填 描述
startWifiSet timeOut(秒) int 跳转到无线网配置界面,超时自动返回三方应用,默认60秒

25.有线网络配置

  1. /**
  2. * 有线网络配置
  3. * @param timeOut 有线网络配置超时时间
  4. */
  5. @Override
  6. public void startEtherSet(int timeOut)
方法名 参数 类型 是否必填 描述
startEtherSet timeOut(秒) int 跳转到有线网配置界面,超时自动返回三方应用,默认60秒

回调action: start_ethernet
成功直接跳转
失败json:

  1. {"message":"网线未插入","result":"400"}

26.应用日志存储

  1. /**
  2. * 保存日志
  3. * @param log 日志信息
  4. */
  5. @Override
  6. public void saveLog(String log)

四、行业终端应用接入指南

4.1、接入流程

环境搭建

第三方应用开发者拿到魔点开放sdk后,需要把aar文件置于libs目录下,通过gradle加载开放sdk

  1. implementation(name: 'base_open_1.0.0_1', ext: 'aar')

启动配置

调用开放sdk前需要在AndroidManifest.xml文件中配置启动界面的action,魔点应用会在每次启动后判断第三方应用是否存在,如果存在则会拉起第三方应用

  1. <activity android:name=".MainActivity"
  2. android:exported="true"
  3. android:launchMode="singleTask">
  4. <intent-filter>
  5. <action android:name="android.intent.action.MAIN" />
  6. <category android:name="android.intent.category.LAUNCHER" />
  7. </intent-filter>
  8. <intent-filter>
  9. <action android:name="com.moredian.open.start" />
  10. <category android:name="android.intent.category.DEFAULT" />
  11. </intent-filter>
  12. </activity>

sdk初始化

调用魔点开放open sdk之前,需要通过MdOpenServer初始化sdk,需传入appId和appKey,可通过魔点开放平台->终端安卓应用->行业终端应用-创建项目(应用)获取

  1. private void initOpenServer() {
  2. MdOpenServer.getInstance().init(this,this);
  3. }

数据监听

初始化成功后再去注册数据回流监听

  1. @Override
  2. public void onInitCallBack(boolean isSuccess, String message) {
  3. Log.d(TAG, "onInitCallBack: isSuccess="+isSuccess+",message="+message);
  4. }

sdk注销

应用或者界面销毁,初始化回调失败,需要通过unRegisterListener注销历史的回流监听,否则下次再次注册,会返回多条相同的数据

4.2、业务接口

名词解释

OpenInitListener 初始化回调

  1. private class OpenListener extends IOpenListener.Stub {
  2. @Override
  3. public void dataCallBack(String action, String result) throws RemoteException
回调方法 参数 类型 描述
dataCallBack action string 发起调用open sdk的动作
dataCallBack result string json格式回调

AuthCallBack 授权回调

  1. public interface AuthCallBack {
  2. void onAuthBack(boolean var1, String var2);
  3. }
回调方法 参数 类型 描述
onAuthBack var1 boolean 授权是否成功
onAuthBack var2 string 授权结果信息

OpenResultListener 数据回调

  1. public interface OpenResultListener {
  2. void resultCallBack(String action, String result);
  3. }
回调方法 参数 类型 描述
resultCallBack action string 调用的开放方法
resultCallBack result string 返回结果

1. sdk初始化

  1. /**
  2. * sdk初始化
  3. * @param context 系统上下文
  4. * @param openInitListener 初始化回调
  5. */
  6. @Override
  7. public void init(@NonNull Context context, OpenInitListener openInitListener)
方法名 参数 类型 是否必填 描述
init context Context 上下文
init openInitListener OpenInitListener 初始化回调

2. 获取授权

  1. /**
  2. * @param appId 终端开放平台创建的appId
  3. * @param appKey 终端开放平台创建的appKey
  4. */
  5. @Override
  6. public void getAuth(String appId, String appKey, AuthCallBack authCallBack)
方法名 参数 类型 是否必填 描述
getAuth appId string 终端开放平台创建的appId
getAuth appKey string 终端开放平台创建的appKey
getAuth authCallBack AuthCallBack

3. sdk注销

应用销毁后应及时注销sdk,注销后,sdk会断开连接,同时释放持有的资源

  1. /**
  2. * sdk注销
  3. */
  4. @Override
  5. public void release()

4. 注册数据回流监听

  1. /**
  2. * 注册数据回流
  3. * @param listener
  4. */
  5. @Override
  6. public void registerListener(IOpenListener listener)
方法名 参数 是否必填 描述
registerListener IOpenListener 继承自IOpenListener.Stub的回调

5. 注销数据回流监听

  1. /**
  2. * 注销数据回流
  3. * @param listener
  4. */
  5. @Override
  6. public void unRegisterListener(IOpenListener listener)
方法名 参数 是否必填 描述
unRegisterListener IOpenListener 继承IOpenListener.Stub的回调

6. 获取sdk版本号

  1. /**
  2. * 获取sdk版本号
  3. * @return
  4. */
  5. @Override
  6. public int getVersionCode()

7. 获取sdk版本名

  1. /**
  2. * 获取sdk版本名
  3. * @return
  4. */
  5. @Override
  6. public String getVersionName()

8. 获取设备信息

  1. /**
  2. * 获取设备基本信息
  3. * @return
  4. */
  5. @Override
  6. public String getDeviceBaseInfo()

返回结果:{“sn”:”090902190730KN0015”,”romVersion”:20124,”romVersionName”:”2.1.24.0”,”appVersion”:2158,”appVersionName”:”V1001.2.0.0-xtest”}

参数名 类型 描述
sn String 设备唯一标记
romVersion long rom版本号
romVersionName String rom版本名
appVersion int 魔点app版本号
appVersionName String 魔点app版本名

9. 获取设备device host模式

  1. /**
  2. * 获取设备device host模式
  3. * @return 1 host模式 0 device模式 -1 获取失败
  4. */
  5. @Override
  6. public int getDeviceHostMode()

设备系统每次启动默认处于host模式

device模式:usb线连接adb时设备必须处于device模式

host模式:以太网正常工作时必须处于host模式

10. 切换设备device host模式

  1. /**
  2. * 切换设备device host 模式
  3. * @param model 1 host模式 0 device模式
  4. */
  5. @Override
  6. public void swicthDeviceHostMode(int model)

每次切换模式后,因为切换存在延迟,若需要通过getDeviceHostMode获取当前模式,需要延迟1秒以上,否则获取到的状态可能有误

11. 开启网络adb

  1. /**
  2. * 是否开启网络adb
  3. * @param enable true开启 false 关闭
  4. */
  5. @Override
  6. public void enableAdb(boolean enable)

12. 开启设备调试输出

  1. /**
  2. * 是否设备日志logcat输出
  3. * @param enable true开启 false 关闭
  4. */
  5. @Override
  6. public void enableLogcat(boolean enable)

13. 设置刷脸模式

  1. /**
  2. * 设置识别模式
  3. * @param mode 1多人识别 2单人识别
  4. */
  5. @Override
  6. public void setRecognizeMode(int mode)
方法名 参数 类型 是否必填 描述
setRecognizeMode mode int 1多人识别 2单人识别

14. 调用刷脸

  1. /**
  2. * 调用刷脸
  3. * @param timeOut 刷脸超时时间
  4. */
  5. @Override
  6. public void detectFace(int timeOut)
方法名 参数 类型 是否必填 描述
detectFace timeOut(秒) int 跳转到刷脸页后,超时自动返回三方应用,默认60秒

结果通过IOpenListener回调返回

回调action: detect_face

识别成功json:

{“data”:{“personId”:”10021”,”personName”:”xxx”,”userType”:1},”message”:”识别成功”,”result”:”200”}

识别失败json:

{“message”:”识别失败,陌生人”,”result”:”400”}

15. 刷卡回调

{“data”:”0123456789”,”message”:”刷卡成功”,”result”:”200”}

16. 调用扫码

  1. /**
  2. * 调用扫码
  3. * @param timeOut 扫码超时时间
  4. */
  5. @Override
  6. public void scanQrCode(int timeOut)
方法名 参数 类型 是否必填 描述
scanQrCode timeOut(秒) int 跳转到扫码页后,超时自动返回三方应用,默认60秒

回调action: scan_qr_code

成功json:

{“data”:”www.moredian.com”,”result”:”200”,”message”:”扫码成功”}

失败json:

{“message”:”设备不支持扫码”,”result”:”400”}

17. 通过卡号获取人员信息

  1. /**
  2. * 通过卡号获取用户信息
  3. * @param cardNo
  4. */
  5. @Override
  6. public void getUserInfoByCard(String cardNo)
方法名 参数 类型 是否必填 描述
getUserInfoByCard cardNo String 通过卡号获取用户信息,需要提前在魔点微应用绑定人员和卡号关系

回调action: get_user_info

成功json:

{“data”:{“cardNum”:”2037175851”,”dingUserId”:”1000”,”id”:32909,”name”:”xxx”,”status”:1},”message”:”query card info success”,”result”:”200”}

失败json:

{“message”:”query card info fail”,”result”:”400”}

18. 重启设备

  1. /**
  2. * 重启设备
  3. */
  4. @Override
  5. public void reboot()

19. 开门

  1. /**
  2. * 开门
  3. */
  4. @Override
  5. public void openDoor(boolean isUserDefaultTime, long openDoorTime)
方法名 参数 类型 是否必填 描述
openDoor isUserDefaultTime boolean 是否使用开放服务默认开门时间
openDoor openDoorTime Long 毫秒,自定义开门时间,isUserDefaultTime false生效

20. 设备音量配置

设置了不在0-100范围内的数据,sdk会抛出异常,需要手动捕获

  1. /**
  2. * 设置设备音量
  3. * @param volume 0-100内整数
  4. */
  5. @Override
  6. public void controlVolume(int volume)
方法名 参数 类型 是否必填 描述
controlVolume volume int 配置设备整体音量大小 范围:0-100

21. 设备led补光灯亮度配置

设置了不在0-255范围内的数据,sdk会抛出异常,需要手动捕获

  1. /**
  2. * 设置led补光灯亮度
  3. * @param value 0-255内整数
  4. */
  5. @Override
  6. public void controlLed(int value)
方法名 参数 类型 是否必填 描述
controlLed value int 配置设备led亮度 范围:0-255

22. 设备屏幕亮度配置

设置了不在0-255范围内的数据,sdk会抛出异常,需要手动捕获

  1. /**
  2. * 设置屏幕亮度
  3. * @param value 0-255内整数
  4. */
  5. @Override
  6. public void controlScreenLight(int value)
方法名 参数 类型 是否必填 描述
controlScreenLight value int 配置设备屏幕亮度 范围:0-255

23. 离线语音合成和播放

  1. /**
  2. * 离线语音合成播放
  3. * @param content
  4. */
  5. @Override
  6. public void playTts(String content)

回调action: play_tts

成功json:

{“message”:”播放成功”,”result”:”0”}

失败json:

{“message”:”TTS组件未初始化”,”result”:”400”}

24. 无线网络配置

  1. /**
  2. * 无线网络配置
  3. * @param timeOut 无线网络配置超时时间
  4. */
  5. @Override
  6. public void startWifiSet(int timeOut)
方法名 参数 类型 是否必填 描述
startWifiSet timeOut(秒) int 跳转到无线网配置界面,超时自动返回三方应用,默认60秒

25. 有线网络配置

  1. /**
  2. * 有线网络配置
  3. * @param timeOut 有线网络配置超时时间
  4. */
  5. @Override
  6. public void startEtherSet(int timeOut)
方法名 参数 类型 是否必填 描述
startEtherSet timeOut(秒) int 跳转到有线网配置界面,超时自动返回三方应用,默认60秒

回调action: start_ethernet

成功直接跳转

失败json:

{“message”:”网线未插入”,”result”:”400”}

文档更新时间: 2025-02-14 03:10   作者:admin