更新时间:2022-02-17 05:23:40下载pdf
设备配网 SDK 提供了把智能设备配置上路由器的能力,具体包括:
名词 | 说明 |
---|---|
Wi-Fi 设备 | 采用 Wi-Fi 模块连接路由器,和 App 以及云端进行数据交互的智能设备。 |
EZ 模式 | 又称快连模式,App 把配网数据包打包到 802.11 数据包的指定区域中,发送到周围环境;智能设备的 Wi-Fi 模块处于混杂模式下,监听捕获网络中的所有报文,按照约定的协议数据格式解析出 APP 发出配网信息包。 |
AP 模式 | 又称热点模式,手机作为 STA 连接智能设备的热点,双方建立一个 Socket 连接通过约定端口交互数据。 |
摄像头扫码配网 | 摄像头设备通过扫描 App 上的二维码获取配网数据信息 |
有线设备 | 通过有线网络连接路由器的设备,例如 Zigbee 有线网关、有线摄像头等 |
子设备 | 通过网关来跟 App 以及云端数据交互的设备,例如 Zigbee 子设备 |
Zigbee | Zigbee 技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。 |
Zigbee 网关 | 融合 Zigbee 网络中协调器和 Wi-Fi 功能的设备,负责 Zigbee 网络的组建及数据信息存储。 |
Zigbee 子设备 | Zigbee 网络中的路由或者终端设备,负责数据转发或者终端控制响应。 |
类名 | 说明 | 注意 |
---|---|---|
TuyaSmartActivator(单例) | 提供快连模式、热点模式、有线设备激活、子设备激活等配网能力 | 需要在主线程中调用该类 |
从 iOS 14 开始,在设备配网、局域网本地控制时会触发本地网络权限弹窗,在用户点击允许后,app才能够向本地局域网发送数据。如果用户点击了拒绝,将无法使用相关功能。目前苹果没有提供任何 API 对此权限进行判断,建议开发者在相关功能无法正常使用时提示、引导用户检查系统设置 - app设置,确认是否开启了本地网络权限。
从 iOS 13 开始,如果没有开启地理位置权限,[[TuyaSmartActivator sharedInstance] currentWifiSSID]
将获取不到正确的 SSID (在已开启 Wi-Fi 权限的前提下), 在此情况下,系统会默认返回 WLAN or Wi-Fi,以下是 Apple 的官方邮件说明:
- As we announced at WWDC19, we’re making changes to further protect user privacy and prevent unauthorized location tracking. Starting with iOS 13, the CNCopyCurrentNetworkInfo API will no longer return valid Wi-Fi SSID and BSSID information. Instead, the information returned by default will be:
- SSID: “Wi-Fi” or “WLAN” (“WLAN” will be returned for the China SKU)
- BSSID: “00:00:00:00:00:00”
如果您有使用 SDK 开发集成涂鸦蓝牙设备,那么一定要关注 iOS 13 新增的应用蓝牙权限
在 iOS 13 系统中,除了系统蓝牙权限外,每个 App 都会有自己的蓝牙权限。若 App 中使用到蓝牙,每个应用首次启动前都会询问 是否允许应用使用蓝牙权限。
在 iOS 13 中,苹果将原来蓝牙申请权限用的 NSBluetoothPeripheralUsageDescription
字段,替换为 NSBluetoothAlwaysUsageDescription
字段。在 info.plist 中添加新字段。
当用户选择不允许时,会影响蓝牙功能的使用。此时建议引导用户进行开启蓝牙权限(此时蓝牙中心的状态为 CBCentralManagerStateUnauthorized
)。
获取方法接口
/// Get the SSID of the current Wi-Fi asynchronously.
/// @see TuyaSmartActivator::currentWifiSSID
/// @param success Called when the task finishes successfully. TYSuccessString will be returned.
/// @param failure Called when the task is interrupted by an error.
+ (void)getSSID:(TYSuccessString)success
failure:(TYFailureError)failure;
示例代码
Objc:
[TuyaSmartActivator getSSID:^(NSString *result) {
} failure:^(NSError *error) {
}];
Swift:
TuyaSmartActivator.getSSID { (_: String?) in
} failure: { (Error) in
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈