局域网发现
局域网发现由 GizLanManager 通过 UDP 广播实现。调用前应初始化核心与 LAN 模块,并确保手机和设备处于允许广播通信的同一局域网。
监听发现结果
import { GizDevice } from '@gizwits/smart-sdk';
import { GizLanManager } from '@gizwits/smart-sdk-lan';
let lanDevices: Array<GizDevice> = [];
const unsubscribeLan = GizLanManager.subscribeLanDeviceList().subscribe(
(devices: Array<GizDevice>): void => {
lanDevices = devices;
}
);开始发现
await GizLanManager.startDiscovery();该方法创建 UDP Socket、发送发现广播并周期刷新。
立即刷新
await GizLanManager.refreshDiscovery();发现已经运行时立即再发送一次广播;尚未启动时会启动发现。
查询发现状态
const discovering: boolean = GizLanManager.isDiscovering();停止发现
await GizLanManager.stopDiscovery();
unsubscribeLan();停止后 SDK 会关闭 Socket,并将当前 LAN 设备标记为离线。
读取发现资料与底层会话
const profile = GizLanManager.getProfile(device.id);
const session = GizLanManager.getSession(device.id);普通业务应通过 device.lanCapability 通信,不应直接维护 GizLanDeviceSession。
发现不到设备时检查当前 Wi-Fi、GET_WIFI_INFO 权限、AP 隔离、访客网络限制和路由器广播策略。