更新时间:2024-04-23 07:37:30下载pdf
通过查询设备信息,您可以获取到类似以下设备信息:
ThingDeviceDetailInfo
属性 | 类型 | 说明 |
---|---|---|
devId | NSString | 设备 ID。 |
iccid | NSString | 设备的 ICCID,物联网卡(SIM 卡)的唯一 ID ,仅 CAT.1 类设备有此数据。 |
netStrength | NSString | 设备信号强度。 |
lanIp | NSString | 设备本地 IP 地址。 |
ip | NSString | 设备 IP 地址。 |
mac | NSString | 设备 MAC 地址。 |
timezone | NSString | 设备时区。 |
channel | NSString | 信道号,仅 Zigbee 网关有此数据。 |
rsrp | NSNumber | 设备的 RSRP 值,仅 Cat.1 类设备有此数据,用于表示该设备网络的信号强度。 |
wifiSignal | NSNumber | 设备的 Wi-Fi 信号强度。 |
homekitCode | NSString | HOMEKIT 验证码。 |
connectAbility | ThingDeviceInfoConnectAbility | 设备连接方式。
|
vendorName | NSString | 设备厂商名称,仅三方 Matter 设备展示。 |
接口说明
获取设备信息,立即返回现有的设备信息。一般用于展示首屏信息,避免因为网络请求速度较慢而展示空白。
- (nullable ThingDeviceDetailInfo *)deviceInfo;
返回数据说明
关于返回的数据格式,请参考 设备信息模型。
接口说明
异步获取设备信息,通过网络请求去拉取设备信息数据。
- (void)fetchDataSuccess:(void(^)(ThingDeviceDetailInfo *info, NSDictionary *hardwareInfo))success failure:(void(^)(NSError *error))failure;
返回数据说明
数据 | 类型 | 说明 |
---|---|---|
success | - | 成功回调。
|
failure | - | 失败回调。 |
接口说明
监听 Wi-Fi 信号的变化。
@protocol ThingDeviceInfoManagerListener <NSObject>
@optional
- (void)deviceInfoManager:(ThingDeviceInfoManager *)manager wifiSignalDidUpdate:(int)wifiSignal;
@end
在添加监听之前,需要通过 addListener:
添加监听。
- (void)addListener:(id<ThingDeviceInfoManagerListener>)listener;
如果想移除监听,则通过 removeListener:
移除监听。
- (void)removeListener:(id<ThingDeviceInfoManagerListener>)listener;
import ThingDeviceDetailKit
class DeviceDetailKitInfoVC: UITableViewController {
var deviceId: String
var manager: ThingDeviceInfoManager
var items: [CustomMenuModel] = []
init(deviceId: String) {
self.deviceId = deviceId
self.manager = ThingDeviceInfoManager(deviceId: deviceId)
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "DeviceDetailListViewControllerReuseIdentifier")
self.manager.add(self)
self.loadData()
}
func loadData() {
SVProgressHUD.show()
self.manager.fetchDataSuccess { [weak self] info, hardware in
var list = [CustomMenuModel]()
list.append(CustomMenuModel(title: "devId", detail: info.devId))
list.append(CustomMenuModel(title: "iccid", detail: info.iccid ?? ""))
list.append(CustomMenuModel(title: "netStrength", detail: info.netStrength ?? ""))
list.append(CustomMenuModel(title: "lanIp", detail: info.lanIp ?? ""))
list.append(CustomMenuModel(title: "ip", detail: info.ip ?? ""))
list.append(CustomMenuModel(title: "mac", detail: info.mac ?? ""))
list.append(CustomMenuModel(title: "timezone", detail: info.timezone ?? ""))
list.append(CustomMenuModel(title: "channel", detail: info.channel ?? ""))
list.append(CustomMenuModel(title: "rsrp", detail: info.rsrp != nil ? "\(info.rsrp!)" : ""))
list.append(CustomMenuModel(title: "wifiSignal", detail: info.wifiSignal != nil ? "\(info.wifiSignal!)" : ""))
list.append(CustomMenuModel(title: "homekitCode", detail: info.homekitCode ?? ""))
list.append(CustomMenuModel(title: "connectAbility", detail: "\(info.connectAbility)"))
list.append(CustomMenuModel(title: "vendorName", detail: info.vendorName ?? ""))
self?.items = list
self?.tableView.reloadData()
SVProgressHUD.dismiss()
} failure: { e in
SVProgressHUD.dismiss()
}
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .value1, reuseIdentifier: "DeviceDetailListViewControllerReuseIdentifier")
cell.textLabel?.text = self.items[indexPath.row].title
cell.detailTextLabel?.text = self.items[indexPath.row].detail
return cell
}
}
extension DeviceDetailKitInfoVC: ThingDeviceInfoManagerListener {
func deviceInfoManager(_ manager: ThingDeviceInfoManager, wifiSignalDidUpdate wifiSignal: Int32) {
let item = self.items.first { item in
return item.title == "wifiSignal"
}
item?.detail = "\(wifiSignal)"
self.tableView.reloadData()
}
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈