更新时间:2025-05-20 03:23:18下载pdf
对于使用 TuyaOS v3.10.0 或更新版本的双模设备,提供了设备主动获取周围 Wi-Fi 列表的功能。该功能具有以下优势:
代码示例
ThingActivatorCoreKit.getScanDeviceManager().startBlueToothDeviceSearch(
60 * 1000,
arrayListOf(ScanType.SINGLE),
object : ThingActivatorScanCallback {
override fun deviceFound(scanBean: ThingActivatorScanDeviceBean) {
// 搜索到设备后,检查是否支持获取 Wi-Fi 列表功能
if (scanBean.isSupportObtainWifiListBeforeActive()) {
// 设备支持获取 Wi-Fi 列表
}
}
override fun deviceRepeat(scanBean: ThingActivatorScanDeviceBean) {
}
override fun deviceUpdate(scanBean: ThingActivatorScanDeviceBean) {
}
override fun scanFailure(failureBean: ThingActivatorScanFailureBean) {
}
override fun scanFinish() {
}
}
)
参数说明
参数 | 说明 |
---|---|
millisTimeOut | 搜索超时时间(单位:毫秒/ms,建议 60,000 ms) |
scanTypeList | SINGLE - 使用蓝牙低功耗(Bluetooth Low Energy,BLE)类型设备扫描 |
thingActivatorScanCallback | 扫描结果回调 |
请求参数说明
data class WifiInfoRequestBean(
var size: Int = 10, // 期望返回的 Wi-Fi 列表数量
var timeout: Long = 5000L, // 设备扫描超时时间(单位:毫秒/ms)
var uuid: String = "", // 蓝牙设备的 UUID
var spaceId: Long = -1, // 家庭 ID
var modeEnum: ThingDeviceActiveModeEnum = ThingDeviceActiveModeEnum.BLE_WIFI,
var scanDeviceBean: ThingActivatorScanDeviceBean? = null // 配网前查询时传入的设备对象
)
代码示例
val wifiReqBean = WifiInfoRequestBean().apply {
uuid = thingActivatorScanDeviceBean.uniqueId
size = 10
timeout = 5000L
modeEnum = ThingDeviceActiveModeEnum.BLE_WIFI
scanDeviceBean = thingActivatorScanDeviceBean
}
ThingActivatorCoreKit.getActiveManager().newThingActiveManager().requestWifiList(
wifiReqBean,
object : IResultResponse<List<ThingActiveWifiInfoBean>> {
override fun onError(errorCode: String?, errorMessage: String?) {
// Wi-Fi 列表获取失败
}
override fun onSuccess(result: List<ThingActiveWifiInfoBean>) {
// Wi-Fi 列表获取成功
}
}
)
获取到 Wi-Fi 列表后,用户可以从设备扫描到的列表中选择网络,然后进行配网:
val activeManager = ThingActivatorCoreKit.getActiveManager().newThingActiveManager()
activeManager.startActive(ThingDeviceActiveBuilder().apply {
activeModel = ThingDeviceActiveModeEnum.BLE_WIFI
ssid = "WiFi SSID"
password = "WiFi Password"
timeOut = 120
relationId = homeId
listener = object : IThingDeviceActiveListener {
override fun onActiveSuccess(deviceBean: DeviceBean) {
// 配网成功
}
override fun onActiveError(errorBean: ThingDeviceActiveErrorBean) {
// 配网失败
}
override fun onActiveLimited(limitBean: ThingDeviceActiveLimitBean) {
}
override fun onBind(devId: String) {
}
override fun onFind(devId: String) {
}
}
})
isSupportObtainWifiListBeforeActive()
检查设备是否支持该功能。在配网前使用此功能获取设备支持的 Wi-Fi 列表,可以有效提升配网成功率,建议在双模配网场景下优先使用此功能。
错误码 | 错误消息 | 处理建议 |
---|---|---|
DEVICE_WIFI_SCAN_FAILED | Wi-Fi 扫描失败 | 检查设备是否正常工作,可以尝试重新扫描 |
DEVICE_NOT_SUPPORT | 设备不支持该功能 | 确认设备是否为 TuyaOS v3.10.0 及以上版本 |
DEVICE_TIMEOUT | 获取超时 | 适当增加 timeout 参数值后重试 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈