无感解锁

更新时间:2024-07-01 08:14:29下载pdf

物联网领域的电动车和汽车等出行设备都支持蓝牙功能,如果用户靠近出行设备后,能够通过蓝牙自动解锁设备,则让解锁过程变得十分方便。

与之前需要用户拿出手机,打开 App,确保设备在线,打开面板再单击解锁的流程相比,涂鸦出行 SDK 的 蓝牙无感解锁 简化了整体的解锁流程。仅需要用户通过 App 首次打开靠近解锁功能,即可下次手机与车靠近时,为用户自动打开车辆或解除设防状态。

无感解锁类型

  • 涂鸦出行 SDK 提供 BLE_HID 和 BT 两种无感解锁类型。
  • 不同出行设备支持的无感解锁类型不同。请通过查询设备支持无感解锁类型接口,获取设备无感解锁控制类。

BLE_HID

BLE_HID 无感解锁类型通过低功耗蓝牙 HID(Human Interface Device)协议实现无感解锁。

无感解锁

BT

BT 无感解锁类型通过经典蓝牙配对实现无感解锁。

无感解锁

无感解锁管理类

获取无感解锁管理类

示例代码

IODInductiveUnlockManager inductiveUnlockManager = ThingODSDK.getODInductiveUnlockManagerInstance();

获取设备无感解锁类型

接口说明

void getInductiveUnlockType(String devId, IThingResultCallback<InductiveUnlockType> callback)

请求参数

参数 类型 是否必填 示例 说明
devId String - 设备 ID
callback IThingResultCallback<InductiveUnlockType> - 结果回调

InductiveUnlockType 数据模型

枚举值 描述
BLE_HID BLE_HID 类型
BT BT 类型
NONE 不支持无感解锁

示例代码

ThingODSDK.getODInductiveUnlockManagerInstance()
    .getInductiveUnlockType(deviceId, new IThingResultCallback<InductiveUnlockType>() {
            @Override
            public void onSuccess(InductiveUnlockType result) {
        Log.d(TAG, "result:" + result);
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                Log.d(TAG, "errorCode:" + errorCode + " errorMessage:" + errorMessage);
            }
        });

获取 BLE_HID 类型控制类

接口说明

IODHidInductiveUnlock newHidInductiveUnlockInstance(String devId);

请求参数

参数 类型 是否必填 示例 说明
devId String - 设备 ID

示例代码

IODHidInductiveUnlock inductiveUnlock = ThingODSDK.getODInductiveUnlockManagerInstance()
      .newHidInductiveUnlockInstance(devId);

获取 BT 类型控制类

接口说明

IODBtInductiveUnlock newBtInductiveUnlockInstance(String devId);

请求参数

参数 类型 是否必填 示例 说明
devId String - 设备 ID

示例代码

IODBtInductiveUnlock inductiveUnlock = ThingODSDK.getODInductiveUnlockManagerInstance()
  .newBtInductiveUnlockInstance(devId);

无感解锁 BLE_HID

获取无感解锁开关状态

接口说明

boolean isInductiveUnlockTurnOn();

示例代码

inductiveUnlock.isInductiveUnlockTurnOn();

开启无感解锁

接口说明

void turnOnInductiveUnlock(InductiveUnlockCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback InductiveUnlockCallback - 结果回调

示例代码

inductiveUnlock.turnOnInductiveUnlock(new InductiveUnlockCallback() {
  @Override
  public void onError(String code, String error) {
    Log.d(TAG, "onError: " + code + " " + error);
  }

  @Override
  public void onSuccess() {
    Log.d(TAG, "onSuccess");
  }
});

关闭无感解锁

接口说明

void turnOffInductiveUnlock(IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback IResultCallback - 结果回调

示例代码

inductiveUnlock.turnOffInductiveUnlock(new IResultCallback() {
  @Override
  public void onError(String code, String error) {
    Log.d(TAG, "onError: " + code + " " + error);
  }

  @Override
  public void onSuccess() {
    Log.d(TAG, "onSuccess");
  }
});

获取本机蓝牙配对状态

接口说明

HidBindStatus getHidBindStatus();

HidBindStatus 数据模型

枚举值 描述
BIND 已绑定
UNBIND 未绑定

设防距离设定

接口说明

void recordFortifyDistance(IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback IResultCallback - 结果回调

示例代码

inductiveUnlock.recordFortifyDistance(new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.d(TAG, "onError: " + code + " " + error);
    }

    @Override
    public void onSuccess() {
        Log.d(TAG, "onSuccess");
    }
});

解防距离设定

接口说明

void recordDisarmDistance(IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback IResultCallback - 结果回调

示例代码

inductiveUnlock.recordDisarmDistance(new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.d(TAG, "onError: " + code + " " + error);
    }

    @Override
    public void onSuccess() {
        Log.d(TAG, "onSuccess");
    }
});

无感解锁 BT

获取无感解锁开关状态

接口说明

boolean isInductiveUnlockTurnOn();

示例代码

inductiveUnlock.isInductiveUnlockTurnOn();

开启无感解锁

接口说明

void turnOnInductiveUnlock(InductiveUnlockCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback InductiveUnlockCallback - 结果回调

示例代码

inductiveUnlock.turnOnInductiveUnlock(new InductiveUnlockCallback() {
  @Override
  public void onError(String code, String error) {
    Log.d(TAG, "onError: " + code + " " + error);
  }

  @Override
  public void onSuccess() {
    Log.d(TAG, "onSuccess");
  }
});

关闭无感解锁

接口说明

void turnOffInductiveUnlock(IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback IResultCallback - 结果回调

示例代码

inductiveUnlock.turnOffInductiveUnlock(new IResultCallback() {
  @Override
  public void onError(String code, String error) {
    Log.d(TAG, "onError: " + code + " " + error);
  }

  @Override
  public void onSuccess() {
    Log.d(TAG, "onSuccess");
  }
});

设置解锁距离

接口说明

void setInductiveUnlockDistance(int distance, IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
distance int - 解锁距离档位,取值为 1-5
callback IResultCallback - 结果回调

示例代码

inductiveUnlock.setInductiveUnlockDistance(1, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
        Log.d(TAG, "onError: " + code + " " + error);
    }

    @Override
    public void onSuccess() {
        Log.d(TAG, "onSuccess");
    }
});

获取解锁距离

接口说明

Integer getInductiveUnlockDistance();

返回参数

类型 示例 说明
Integer 1 解锁距离,null 值表示本机未开启无感解锁

示例代码

Integer btInductiveUnlockDistance = inductiveUnlock.getInductiveUnlockDistance();

设备管理

与无感解锁相关的设备管理功能。

获取设备控制类

示例代码

IODDevice mODDevice = ThingODSDK.newODDeviceInstance(devId);

移除设备

从用户设备列表中移除设备,已开启无感解锁功能的设备在移除时会尝试移除本机蓝牙配对。

接口说明

void removeDevice(IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback IResultCallback - 结果回调

示例代码

mODDevice.removeDevice(new IResultCallback() {
  @Override
  public void onError(String errorCode, String errorMsg) {
        Log.d(TAG, "onError: " + code + " " + error);
  }

  @Override
  public void onSuccess() {
        Log.d(TAG, "onSuccess");
  }
});

恢复出厂设置

设备恢复出厂设置后,设备的相关数据会被清除掉,并重新进入待配网状态。已开启无感解锁功能的设备,在移除时会尝试移除本机蓝牙配对。

接口说明

void resetFactory(IResultCallback callback);

请求参数

参数 类型 是否必填 示例 说明
callback IResultCallback - 结果回调

示例代码

mODDevice.resetFactory(new IResultCallback() {
  @Override
  public void onError(String errorCode, String errorMsg) {
        Log.d(TAG, "onError: " + code + " " + error);
  }

  @Override
  public void onSuccess() {
        Log.d(TAG, "onSuccess");
  }
});

错误码

状态码 说明
-6000 操作超时
-6001 蓝牙设备配对记录超限
-6002 设备配对被取消
-6003 设备被其他手机蓝牙配对