设备配网

更新时间:2023-10-17 06:39:17下载pdf

业务拓展 SDK 的 设备配网 业务是基于智能生活 App SDK 做的封装和拓展。通过使用该业务 SDK,您可以大大简化配网流程,提高代码复用率和开发效率。同时,还提供了丰富的配网状态回调和错误码,以帮助您实时监控配网状态和处理异常情况。

功能说明

设备配网业务提供统一的可并行的搜索服务和激活服务,支持配网能力如下:

  • Wi-Fi 快连模式(又称 EZ 模式)
  • Wi-Fi 热点模式(又称 AP 模式)
  • 智能摄像头扫码配网
  • Zigbee 有线网关配网
  • Zigbee 子设备配网
  • App 扫智能设备二维码配网
    • 直连类设备
    • 蓝牙扫码设备
  • 闪电搜索配网
  • NB-IoT 设备配网
  • 蓝牙设备配网
    • 蓝牙单点配网
    • 蓝牙 Mesh 配网
    • 蓝牙低功耗 + Wi-Fi 双模配网
    • Beacon 配网
  • TuyaLink 设备绑定
  • Matter 设备配网
  • 复合扫描功能

使用说明

基座提供的能力主要在 ThingActivatorCoreKit 类中,基座核心功能为 扫描附近设备设备配网

//扫描附近设备
val scanManager = ThingActivatorCoreKit.getScanDeviceManager()

//配网对应设备
val activeManager = ThingActivatorCoreKit.getActiveManager().newThingActiveManager()

还有一些其他辅助的功能可以对应 API 注释。

错误码

错误码 原因
10002 参数不合法
DEVICE_ALREADY_BIND 强绑定类型错误(需要当前已配网该设备的账号先解绑)
GUEST_NOT_SUPPORT_STRONG_BIND 游客模式强绑定类型错误

系统适配

针对 Android 12 及以上系统版本适配:

  • 在 Android12 之前,扫描附近的蓝牙设备时以及 Wi-Fi 获取对应连接 SSID 时,需要定位权限。
  • 从 Android12 开始,Android 系统对定位权限这种相对隐私信息的权限进行了拆分。如果扫描附近普通蓝牙设备时,您无需申请定位权限,而需要申请新增的蓝牙扫描、连接权限,并同时在蓝牙扫描权限中添加 usesPermissionFlagsneverForLocation。更多详情,请参考 Android 官方文档 蓝牙权限

普通蓝牙设备无需申请定位权限,但是在扫描 iBeacon 类型广播的情况下,如果您的设备中需要使用相关功能,依然需要申请定位权限。

  • 若您的业务不需要使用 iBeacon 类设备,则可以仅申请蓝牙相关权限。

    只要加了 neverForLocation 设定,则不管您加不加定位权限,系统蓝牙广播都会过滤掉 iBeacon 类广播。

    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"
            android:usesPermissionFlags="neverForLocation"/>
        <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
        <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
    
  • 若您的业务需要使用 iBeacon 类设备,则需要申请 Location 权限,且不能设置 neverForLocation

    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />