BLE 配网
timeout 单位为秒,例如 60 表示 60 秒。bindWithUid 虽然是可空类型,但没有默认参数,调用时必须显式传入。
AI 模组特别说明:当模组是 AI 模组,且由模组自行与云端建立绑定关系时,SDK 配网必须设置 bindWithUid = true。 配网前先完成用户登录,或设置有效的 uid 和 token。该模式使用当前用户的绑定设备列表确认配网结果;普通配网场景传 false。此开关不能代替登录,也不等同于 App 主动调用设备 bind()。
配网前先扫描并获取设备。对于广播支持 5 GHz 配网的模组,SDK 会自动选择对应的协议,无需新增调用接口。
返回类型为 GizResult<GizBaseProfile?, GizActivatorException?>。通过能力对象的 deviceProfile 读取模组信息;netStatus 为枚举。
import GizwitsiOSSDK
// 在 Task 或 async 函数内执行;AI 模组自行建立云端绑定时使用 true
let bindWithUid = true
let capability = device.bleCapability
if let profile = capability.deviceProfile as? GizBleProfile,
profile.configured == false, capability.isOnline {
let result = await capability.provideWiFiCredentials(
ssid: ssid,
password: password,
timeout: 60,
processHandler: { event in print(event) },
bindWithUid: bindWithUid
)
if let error = result.error ?? nil, error == .GIZ_SDK_DEVICE_CONFIG_TIMEOUT {
print("Timeout")
}
if result.success, let configuredDevice = result.data ?? nil {
print(configuredDevice.mac)
}
}停止配网
let stopResult = await device.bleCapability.stopProvideWiFiCredentials()