复合扫描

更新时间:2023-11-10 07:53:01下载pdf

复合扫描目前支持 Wi-Fi 快连(EZ)、免密、闪电、有线网关、子设备、网关路由器、蓝牙、Matter 八种配网设备扫描方式,方便您直接使用一个或多个复合扫描能力。

  • 多个扫描功能合并成一个扫描,减少多个不同扫描回调繁琐的数据处理。
  • 减少用户对扫描到设备的唯一标识的理解,可以直接使用提供的统一扫描数据类的唯一标识。

扫描结果说明

class ThingActivatorScanDeviceBean(
    /**
     * uniqueId
     */
    val uniqueId: String = "",

    /**
     * device name
     */
    var name: String? = "",

    /**
     * device iconurl
     */
    var icon: String? = "",

    /**
     * What scanning capabilities are used to scan
     */
    var scanDeviceTypeList: MutableList<ThingActivatorScanType> = mutableListOf(),

    /**
     * What ThingDeviceActiveModeEnum
     */
    var supprotActivatorTypeList: MutableList<ThingDeviceActiveModeEnum> = mutableListOf(),

    /**
     * Pid
     */
    var pid: String? = "",

    var deviceType: MatterDeviceTypeEnum? = null

) : Serializable

支持的扫描枚举

public enum ThingActivatorScanType {

    /**
     * Wi-Fi 快连
     */
    EZ,

    /**
     * 免密
     */
    FREE_PWD,

    /**
     * Pegasus 闪电配网
     */
    LIGHTNING,

    /**
     * Wired
     */
    LOCAL_GATEWAY,

    /**
     * 子设备配网
     */
    SUB,

    /**
     * Router
     */
    GW_ROUTER,

    /**
     * Bluetooth
     */
    BLUETOOTH,

    /**
     * Matter
     */
    MATTER

}

详细参数详解

不同的配网方式在参数上,以及实现上,都存在差异。为了减少理解与使用成本,涂鸦将所有扫描方式封装为统一的参数类 ThingActivatorScanBuilder

Wi-Fi 快连、免密、网关路由器、子设备其实无扫描过程,扫描表示能力的配网。如果您有包含对应能力在内的多种设备并行搜索展示的功能,可以使用,和使用对应能力的配网功能一致。

通用参数

必传参数 说明
millisTimeout 超时时长,单位为毫秒(ms),最短超时时长为:120s

蓝牙扫描

所需条件为定位权限和蓝牙权限(Android12 及以上为蓝牙扫描权限)。

必传参数 说明
blueToothScanTypeList 蓝牙扫描支持类型,具体支持的扫描类型参考 蓝牙扫描 ScanType 类型

Wi-Fi 快连扫描

必传参数 说明
ssid Wi-Fi 名称
pwd Wi-Fi 密码
token 鉴权标识
context 上下文

免密扫描

必传参数 说明
freePwdIdList 支持免密设备 ID 列表
token 鉴权标识
context 上下文

网关路由器扫描

必传参数 说明
gwRouterIdList 支持网关路由器设备 ID 列表
token 鉴权标识
context 上下文

子设备扫描

必传参数 说明
gwId 网关 ID

闪电扫描

必传参数 说明
lightningIdList 支持闪电设备 ID 列表

有线网关扫描和 Matter 设备扫描

无需特殊参数。

开始扫描

val activatorScanKey = ThingActivatorCoreKit.getScanDeviceManager().startScan(
            ThingActivatorScanBuilder(), object : ThingActivatorScanCallback {
                override fun deviceFound(deviceBean: ThingActivatorScanDeviceBean) {
                    //Scan to device

                }

                override fun deviceRepeat(deviceBean: ThingActivatorScanDeviceBean) {
                    //Repeat scan to device

                }

                override fun deviceUpdate(deviceBean: ThingActivatorScanDeviceBean) {
                    //The device has been scanned before, and the capabilities are updated.
                }

                override fun scanFailure(failureBean: ThingActivatorScanFailureBean) {
                    //Scan failure
                }

                override fun scanFinish() {
                    //Scan finish

                }

            }
        )

停止扫描

//Stop all scanning functions
ThingActivatorCoreKit.getScanDeviceManager().stopScan(activatorScanKey)

// Stop some scanning functions
ThingActivatorCoreKit.getScanDeviceManager().stopPartScan(activatorScanKey,ThingActivatorScanType.xxx)

错误码

错误码 说明
10002 对应搜索能力参数不对
1006 搜索超时