本文介绍设备信息的获取和管理能力等安卓版接口信息包含设备初始化设备监听设备控制查询设备信息修改设备名称移除设备设备恢复出厂设置查询 Wi-Fi 信号强度回收设备资源等 功能说明 设备相关的返回数据都采用异步消息的方式通知接收者 同时也提供了控制指令下发设备固件升级的接口 IThingDevice 类提供了设备状态通知能力通过注册回调函数您可以方便的获取设备数据接受设备移除设备上下线手机网络变化的通知 IThingGateway 类提供了 Zigbee 网关相关的操作包括控制查询和监听子设备状态的能力 DeviceBean 数据类型: 属性 类型 说明 devId String 设备 ID name String 设备名称 iconUrl String 图标地址 schema String 设备控制数据点的类型信息 productId String 产品 ID同一个产品 ID 的设备的 schema 信息一致 timezoneId String 设备所在的时区 category String 设备类型 pv String 网关协议版本 bv String 网关通用固件版本 time Long 设备激活时间 schemaMap Map schema 的缓存数据 dps Map 设备功能点数据信息key 是 DP IDvalue 是取值详情请参考 设备功能点 章节 getIsOnline Boolean 设备是否在线指局域网或者云端在线 isLocalOnline Boolean 设备的局域网在线状态 supportGroup Boolean 设备是否支持群组如果不支持请到 涂鸦开发者平台 开启此功能 isShare Boolean 是否是分享的设备 virtual Boolean 是否是虚拟设备 isZigBeeWifi Boolean 是否是 Zigbee 网关设备 hasZigBee Boolean 是否有 Zigbee 设备 nodeId String 用于网关和子设备类型的设备属于子设备的一个属性标识其短地址 ID一个网关的子设备的 nodeId 都是唯一的 meshId String 用于网关和子设备类型的设备属于子设备的一个属性标识其网关 ID lon String 设备所在经度信息 lat String 设备所在纬度信息 注意:设备控制时如果涉及到经纬度 lon 和 lat请在配网前调用 setLatAndLong 设置经纬度: ThingSdk.setLatAndLongString latitude String longitude 初始化设备 初始化设备控制类 根据设备 ID 初始化设备控制类 IThingDevice ThingOSDevice.newDeviceInstanceString devId 参数说明 参数 说明 devId 设备 ID Java 示例 IThingDevice mDevice ThingOSDevice.newDeviceInstancedeviceBean.getDevId 监听设备 注册设备监听 IThingDevice 提供设备相关信息的监听包含: DP 数据 设备名称 设备在线状态和设备移除 void IThingDevice.registerDevListenerIDevListener listener 参数说明 参数 说明 listener 设备状态监听 IDevListener 接口 public interface IDevListener { / DP 数据更新 @param devId 设备 ID @param dpStr 设备发生变动的功能点为 JSON 字符串数据格式:{"101": true} / void onDpUpdateString devId String dpStr / 设备移除回调 @param devId 设备id / void onRemovedString devId / 设备上下线回调如果设备断电或断网服务端将会在3分钟后回调到此方法 @param devId 设备 ID @param online 是否在线在线为 true / void onStatusChangedString devId boolean online / 网络状态发生变动时的回调 @param devId 设备 ID @param status 网络状态是否可用可用为 true / void onNetworkStatusChangedString devId boolean status / 设备信息更新回调 @param devId 设备 ID / void onDevInfoUpdateString devId } 说明:其中设备功能点说明请参考 设备功能点 章节 Java 示例 mDevice.registerDevListenernew IDevListener { @Override public void onDpUpdateString devId String dpStr { } @Override public void onRemovedString devId { } @Override public void onStatusChangedString devId boolean online { } @Override public void onNetworkStatusChangedString devId boolean status { } @Override public void onDevInfoUpdateString devId { } } 注意:请勿使用 void registerDeviceListenerIDeviceListener listener 方法此方法需要配合标准设备使用该 API 暂未开放使用 取消设备监听 当不需要监听设备时取消设备监听 接口说明 void IThingDevice.unRegisterDevListener Java 示例 mDevice.unRegisterDevListener 查询设备信息 查询单个 DP 数据查询后的数据会通过 IDevListener.onDpUpdate 接口进行异步回调 注意:该接口主要是针对不主动发送数据的设备 DP例如倒计时信息查询常规查询 DP 数据值时可通过 DeviceBean 中的 getDps 获取 void IThingDevice.getDpString dpId IResultCallback callback Java 示例 mDevice.getDpdpId new IResultCallback { @Override public void onErrorString code String error { } @Override public void onSuccess { } } 修改设备名称 重命名设备并支持多设备同步 // 修改设备名称 void IThingDevice.renameDeviceString nameIResultCallback callback Java 示例 mDevice.renameDevice"设备名称" new IResultCallback { @Override public void onErrorString code String error { // 修改设备名称失败 } @Override public void onSuccess { // 修改设备名称成功 } } 后续步骤 重命名成功后IDevListener.onDevInfoUpdate 会收到通知调用以下方法可以获取最新数据然后刷新设备信息即可 ThingOSDevice.getDataInstance.getDeviceBeanString devId 移除设备 从用户设备列表中移除设备 void IThingDevice.removeDeviceIResultCallback callback Java 示例 mDevice.removeDevicenew IResultCallback { @Override public void onErrorString errorCode String errorMsg { } @Override public void onSuccess { } } 恢复出厂设置 设备恢复出厂设置后设备的相关数据会被清除掉并重新进入待配网状态如果是 Wi-Fi 设备默认进入 Wi-Fi 快连模式 void IThingDevice.resetFactoryIResultCallback callback Java 示例 mDevice.resetFactorynew IResultCallback { @Override public void onErrorString errorCode String errorMsg { } @Override public void onSuccess { } } 查询 Wi-Fi 信号强度 查询设备 Wi-Fi 的信号强度 void IThingDevice.requestWifiSignalWifiSignalListener listener Java 示例 mDevice.requestWifiSignalnew WifiSignalListener { @Override public void onSignalValueFindString signal { } @Override public void onErrorString errorCode String errorMsg { } } 回收设备资源 应用或者 Activity 关闭时可以调用此接口回收设备占用的资源 void IThingDevice.onDestroy Java 示例 mDevice.onDestroy 初始化网关设备 初始化网关控制类 根据设备 ID 初始化网关设备控制类 IThingGateway ThingOSDevice.newGatewayInstanceString devId 参数说明 参数 说明 devId 设备 ID Java 示例 IThingGateway mGateway ThingOSDevice.newGatewayInstancedeviceBean.getDevId 监听子设备 注册子设备监听 IThingGateway 提供设备相关信息的监听包含: DP 数据 子设备名称 子设备在线状态和设备移除 void IThingGateway.registerSubDevListenerISubDevListener listener 参数说明 参数 说明 listener 设备状态监听 IDevListener 接口 public interface ISubDevListener { / 子设备DP 数据更新 @param nodeId 子设备 ID @param dps 设备发生变动的功能点为 JSON 字符串数据格式:{"101": true} / void onSubDevDpUpdateString nodeId String dps / 子设备移除回调 @param devId 子设备id / void onSubDevRemovedString devId / 子设备添加回调 @param devId 子设备id / void onSubDevAddedString devId / 子设备上下线回调如果设备断电或断网服务端将会在3分钟后回调到此方法 @param onlineDeviceIds 在线子设备 ID @param offlineDeviceIds 离线子设备 ID / void onSubDevStatusChangedList<String> onlineDeviceIds List<String> offlineDeviceIds / 子设备信息更新回调 @param devId 子设备 ID / void onSubDevInfoUpdateString devId } 说明:其中设备功能点说明请参考 设备功能点 章节 Java 示例 mGateway.registerSubDevListener new ISubDevListener { void onSubDevDpUpdateString nodeId String dps { } void onSubDevRemovedString devId { } void onSubDevAddedString devId { } void onSubDevInfoUpdateString devId { } void onSubDevStatusChangedList<String> onlineDeviceIds List<String> offlineDeviceIds { } } 取消子设备监听 当不需要监听子设备时取消子设备监听 接口说明 void IThingGateway.unRegisterSubDevListener Java 示例 mGateway.unRegisterSubDevListener 查询网关子设备列表 可以获取网关下子设备的列表 接口说明 void IThingGateway.getSubDevListIThingDataCallback<List<DeviceBean>> callback Java 示例 mGateway.getSubDevListnew IThingDataCallback<List<DeviceBean>> { @Override public void onSuccessList<DeviceBean> result { } @Override public void onErrorString errorCode String errorMessage { } } 回收网关资源 应用或者 Activity 关闭时可以调用此接口回收网关设备占用的资源 void IThingGateway.onDestroy Java 示例 mGateway.onDestroy
来自 : Smart App SDK/商用照明 App SDK/商用照明 App SDK 安卓版/设备管理