通信状态
每个 GizDevice 的 BLE、LAN 和 MQTT capability 都维护独立状态。只有达到 ONLINE_CONTROLLABLE 后才应发送控制或读取指令。
读取和监听状态
import { GizCapacityStatus } from '@gizwits/smart-sdk';
const currentStatus = device.bleCapability.getStatus();
const unsubscribeStatus = device.bleCapability.subscribeStatus().subscribe(
(status: GizCapacityStatus): void => {
const controllable = status === GizCapacityStatus.ONLINE_CONTROLLABLE;
// 根据 controllable 更新 ArkUI 控件。
}
);OFFLINE 表示通道不可用;ONLINE 表示已发现或已连接但尚不可控;ONLINE_CONTROLLABLE 表示鉴权或登录完成。
MQTT 云端状态
MQTT 模块会根据登录态、绑定设备资料、网络连接与主题订阅自动更新状态:
const unsubscribeCloud = device.mqttCapability.subscribeStatus().subscribe((status): void => {
// 云端通道状态发生变化。
});GizState 使用约束
const current = device.lanCapability.subscribeStatus().getValue();
const unsubscribeBound = device.subscribeBoundState().subscribe((isBound: boolean): void => {
// subscribe 默认立即回调当前值。
});页面离开时调用所有取消函数。调用方只应读取和订阅 SDK 返回的 GizState,不要调用 setValue() 或 clearSubscribers() 修改内部状态。