更新时间:2024-09-13 06:45:32下载pdf
设备服务提供 MQTT 操作工具、蓝牙操作工具和设备操作等接口。
MQTT 操作工具可以实现 MQTT 的订阅和发布等功能。
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
topic | String | 是 | 要订阅的主题 |
callback | IMQTTSubscribeCallback | 是 | 订阅回调函数 |
代码示例
MQTTHelper.subscribe("topic", new IMQTTSubscribeCallback() {
@Override
public void onError(String s, String s1) {
Log.d(TAG, "onError: " + s);
}
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
});
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
topic | String | 是 | 要取消订阅的主题 |
callback | IMQTTSubscribeCallback | 是 | 取消订阅回调函数 |
代码示例
MQTTHelper.unsubscribe("topic", callback);
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
topic | String | 是 | 要发布的主题 |
data | String | 是 | 要发布的内容 |
callback | IndustryCallBack | 是 | 发布回调函数 |
代码示例
MQTTHelper.publish("topic", data, new IndustryCallBack() {
@Override
public void onError(int code, String msg) {
Log.d(TAG, "onError: " + msg);
}
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
});
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener | IMQTTListener | 是 | 消息监听 |
代码示例
MQTTHelper.registerMessageListener(new IMQTTListener() {
@Override
public void onReceiveError(topic: String, code: String, msg: String) {
}
@Override
public void onReceiveSuccess(topic: String, protocol: Int, jsonData: String) {
}
});
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
listener | IMQTTListener | 是 | 消息监听 |
代码示例
MQTTHelper.registerMessageListener(listener);
BleConnectBean 对象
属性 | 类型 | 是否必填 | 说明 |
---|---|---|---|
devId | String | 是 | 设备 ID |
directConnect | boolean | 是 | 是否直接连接 |
level | int | 是 | 等级 |
scanTimeout | int | 是 | 扫描超时时间 |
autoConnect | boolean | 是 | 是否自动连接 |
extInfo | ExtInfo | 可选 | 扩展信息 |
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
beans | List |
是 | 包含 BleConnectBean 对象的列表 |
代码示例
List<BleConnectBean> beans = new ArrayList<>();
BleConnectBean bleConnectBean = new BleConnectBean(
"your_dev_id", // 设置 devId 属性
false, // 设置 directConnect 属性
0, // 设置 level 属性
30000, // 设置 scanTimeout 属性
false, // 设置 autoConnect 属性
null // 设置 extInfo 属性(可选,传入 null 表示没有 extInfo)
);
beans.add(bleConnectBean);
BleToolService.connectBleDevices(beans);
代码示例
List<BleConnectBean> beans = new ArrayList<>();
BleConnectBean bleConnectBean = new BleConnectBean(
"your_dev_id", // 设置 devId 属性
false, // 设置 directConnect 属性
0, // 设置 level 属性
30000, // 设置 scanTimeout 属性
false, // 设置 autoConnect 属性
null // 设置 extInfo 属性(可选,传入 null 表示没有 extInfo)
);
beans.add(bleConnectBean);
BleToolService.disconnectBleDevices(beans);
IDevice 接口
接口 | 说明 |
---|---|
getDeviceId(): String | 设备 ID |
getUUID(): String | 设备 UUID |
getName(): String | 设备名称 |
getIcon(): String | 设备图标 |
getProductId(): String | 产品 ID |
getCategory(): String | 设备品类缩写,用于标注该产品所属的品类。例如,kg 表示开关,cz 表示插座。详情请参考 标准指令集。 |
getCapability(): Int | 联网通信能力标位:
|
getProtocolAttribute(): Long | 协议支持接入标位 |
getTimezoneId(): String | 设备所在的时区 |
isCloudOnline(): Boolean | 设备的云端在线状态 |
isLocalOnline(): Boolean | 设备的局域网在线状态 |
isOnline(): Boolean | 设备是否在线,指局域网或者云端在线 |
getLatitude(): String | 设备纬度 |
getLongitude(): String | 设备经度 |
getDps(): Map<String, Any> | 获取设备数据点(DP) |
publishDps(dps: DpCommand, callback: IndustryCallBack) | 设备 DP 功能控制 |
getSchemas(): Map<String, DpSchema> | 获取设备 DP 模式 |
addDeviceListener(listener: IDeviceListener) | 设置设备监听 |
removeDeviceListener(listener: IDeviceListener) | 移除设备监听 |
getWifiSignalStrength(callback: IndustryValueCallBack |
查询 Wi-Fi 信号强度 |
getDevAttribute(): Long | 设备标志位:
|
newOtaManager(): IDeviceOtaManager | 获取设备 OTA 管理实例 |
newBackupManager(): IDeviceWifiBackupManager | 设备备用网络。是否支持此功能,需要参考 getDevAttribute() 返回的值,bit12 支持此功能 |
getMeta(): Map<String, Any>? | 调用 getMeta()?.get("wifiEnable") 来查询设备是否激活云端链路,蓝牙 Wi-Fi 双模设备会使用到该标识 |
DpCommand 对象
属性 | 类型 | 是否必填 | 说明 |
---|---|---|---|
publishMode | DpsPublishMode | 是 | 数据下发方式 |
dps | List |
是 | DP 数据集 |
根据设备 ID,加载设备对象。
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
deviceId | String | 是 | 设备 ID |
代码示例
// 方式一
DeviceService.load("deviceId", new IndustryValueCallBack<IDevice>() {
@Override
public void onSuccess(IDevice iDevice) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onError(int i, String s) {
Log.d(TAG, "onError: " + s);
}
});
// 方式二
IDevice device = DeviceService.device("deviceId")
if (device != null) {
}
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
deviceId | String | 是 | 要重命名的设备 ID |
newName | String | 是 | 设备的新名称 |
callback | IndustryCallBack | 是 | 重命名设备后的回调函数 |
代码示例
DeviceService.rename("deviceId", "newName", new IndustryCallBack() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onError(int i, String s) {
Log.d(TAG, "onError: " + s);
}
});
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
deviceId | String | 是 | 要删除的设备 ID |
callback | IndustryCallBack | 是 | 删除设备后的回调函数 |
代码示例
DeviceService.remove("deviceId", new IndustryCallBack() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onError(int i, String s) {
Log.d(TAG, "onError: " + s);
}
});
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
deviceId | String | 是 | 设备 ID |
callback | IndustryCallBack | 是 | 回调函数 |
代码示例
DeviceService.resetFactory("deviceId", new IndustryCallBack() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onError(int i, String s) {
Log.d(TAG, "onError: " + s);
}
});
IDevice
提供设备相关信息的监听,包括但不限于:
参数说明
参数 | 说明 |
---|---|
listener | 设备状态监听 |
代码示例
iDevice.addDeviceListener(new IDeviceListener() {
@Override
public void onDpUpdate(String s, String s1) {
Log.d(TAG, "onDpUpdate: ");
}
@Override
public void onRemoved(String s) {
Log.d(TAG, "onRemoved: ");
}
@Override
public void onStatusChanged(String s, boolean b) {
Log.d(TAG, "onStatusChanged: ");
}
@Override
public void onNetworkStatusChanged(String s, boolean b) {
Log.d(TAG, "onNetworkStatusChanged: ");
}
@Override
public void onDevInfoUpdate(String s) {
}
});
参数说明
参数 | 说明 |
---|---|
listener | 取消设备状态监听 |
代码示例
iDevice.removeDeviceListener(listener);
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
dpCommand | DpCommand | 是 | DP 命令 |
callback | IndustryCallBack | 是 | 成功回调函数 |
创建 dpCommand
示例
DpCommand dpCommand = new DpCommand.Builder()
.addDp("key","value")
.publishMode(DpsPublishMode.AUTO)
.build();
代码示例
iDevice.publishDps(dpCommand, new IndustryCallBack() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onError(int i, String s) {
Log.d(TAG, "onError: ");
}
});
接口说明
iDevice.newBackupManager().onDestroy();
FirmwareUpgradeInfo 对象
属性 | 类型 | 说明 |
---|---|---|
desc | String | 升级文案 |
upgradeStatus | Int | 升级状态
|
version | String | 新版本使用的固件版本 |
currentVersion | String | 当前的固件版本 |
timeout | Int | 超时时间 |
upgradeType | Int | 升级类型
|
type | Int | 普通固件通道类型
|
typeDesc | String | 固件通道描述 |
lastUpgradeTime | Long | 上次升级时间 |
firmwareDeployTime | Long | 固件部署时间 |
fileSize | Long | 固件包的大小,单位:字节 |
controlType | Int | 升级中是否可控制
|
upgradingDesc | String | 固件升级中的提示文案 |
downloadingDesc | String | 下载中的提示文案 |
remind | String | 前置校验规则未通过的提示文案 |
canUpgrade | Boolean? | 前置校验规则是否通过
|
devType | Int | 设备类型
|
waitingDesc | String | 固件等待设备唤醒的文案 |
upgradeMode | Int | 固件类别,v3.35.5 开始支持
|
DeviceUpgradeStatusBean 对象
属性 | 类型 | 说明 |
---|---|---|
devId | String | 设备 ID |
firmwareType | int | 固件类型 |
statusText | String | 状态描述 |
statusTitle | String | 状态标题 |
progress | int | 进度。部分情况下参数值可能小于 0 ,请忽略此种小于 0 的进度 |
status | DevUpgradeStatusEnum | 升级状态枚举
|
upgradeMode | Int | 固件类别
|
errorMsg | String | 失败信息 |
errorCode | Int | 失败错误码 |
iDevice.newOtaManager().fetchFirmwareUpgradeInfo(new IndustryDataCallBack<List<FirmwareUpgradeInfo>>() {
@Override
public void onSuccess(List<FirmwareUpgradeInfo> firmwareUpgradeInfos) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
参数说明
参数名 | 类型 | 说明 |
---|---|---|
upgradeInfoList | List |
设备固件升级信息 |
代码示例
iDevice.newOtaManager().startOTA(upgradeInfoList);
参数说明
参数名 | 类型 | 说明 |
---|---|---|
isContinue | Boolean | 是否继续升级 |
代码示例
iDevice.newOtaManager().continueOTA(isContinue)
参数说明
参数名 | 类型 | 说明 |
---|---|---|
firmwareType | Int | 固件类型 |
callback | IndustryNormalCallback | 回调 |
代码示例
iDevice.newOtaManager().cancelOTA(0, new IndustryNormalCallback() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
代码示例
iDevice.newOtaManager().fetchUpgradingInfo(new IndustryDataCallBack<DeviceUpgradeStatusBean>() {
@Override
public void onSuccess(DeviceUpgradeStatusBean deviceUpgradeStatusBean) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
代码示例
iDevice.newOtaManager().registerOTAListener(new IDeviceOtaListener() {
@Override
public void firmwareUpgradeStatus(DeviceUpgradeStatusBean deviceUpgradeStatusBean) {
Log.d(TAG, "firmwareUpgradeStatus: ");
}
});
通过 iDevice.getDevAttribute() & (1 << 12)
,判断当前设备是否支持设置备用网络。
1
表示支持0
表示不支持ConnectWifiInfoBean 对象
属性 | 类型 | 说明 |
---|---|---|
devId | String | 设备 ID |
tId | String | 消息 ID |
ssid | String | Wi-Fi SSID |
signal | Int | Wi-Fi 信号强度 |
network | Int | 网络状态 |
version | Int | 当前协议版本 |
hash | String | 当前 Wi-Fi 的哈希值 |
BackupWifiInfoListBean 对象
参数说明
属性 | 类型 | 说明 |
---|---|---|
devId | String | 设备 ID |
tId | String | 消息 ID |
maxNum | String | 设备可以存储的最大 SSID 数量 |
backupList | MutableList |
备份的 Wi-Fi 网络信息列表,类型为 [BackupWifiInfoBean] |
BackupWifiInfoBean 对象
属性 | 类型 | 说明 |
---|---|---|
ssid | String | Wi-Fi SSID |
hash | String | Wi-Fi 密码哈希值 |
passwd | String | Wi-Fi 密码 |
BackupWifiResultBean 对象
参数说明
属性 | 类型 | 说明 |
---|---|---|
devId | String | 设备 ID |
tId | String | 消息 ID |
ssid | String | Wi-Fi SSID |
resCode | Int | 设备响应代码 |
ssidList | MutableList |
Wi-Fi SSID 列表 |
参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
callback | IndustryDataCallBack | 是 | 回调 |
代码示例
iDevice.newBackupManager().fetchConnectWifiInfo(new IndustryDataCallBack<ConnectWifiInfoBean>() {
@Override
public void onSuccess(ConnectWifiInfoBean connectWifiInfoBean) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
代码示例
iDevice.newBackupManager().fetchBackupWifiInfoList(new IndustryDataCallBack<BackupWifiInfoListBean>() {
@Override
public void onSuccess(BackupWifiInfoListBean backupWifiInfoListBean) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
参数说明
参数 | 描述 |
---|---|
backupWifiList | 备用 Wi-Fi 信息 Bean |
callback | 回调 |
代码示例
ArrayList<BackupWifiInfoBean> backupWifiList = new ArrayList<>();
// 新添加的,设置密码
BackupWifiInfoBean backupWifiBean = new BackupWifiInfoBean();
backupWifiBean.setSsid("test1");
backupWifiBean.setPasswd("12345678");
backupWifiList.add(backupWifiBean);
iDevice.newBackupManager().setBackupWifiInfoList(backupWifiList, new IndustryDataCallBack<BackupWifiResultBean>() {
@Override
public void onSuccess(BackupWifiResultBean backupWifiResultBean) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
参数说明
参数 | 类型 | 说明 |
---|---|---|
ssid | String | Wi-Fi 名称 |
password | String | Wi-Fi 密码 |
callback | IndustryDataCallBack | 回调 |
代码示例
iDevice.newBackupManager().switchToTargetWifi("ssid", "password", new IndustryDataCallBack<SwitchWifiResultBean>() {
@Override
public void onSuccess(SwitchWifiResultBean switchWifiResultBean) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
参数说明
参数 | 类型 | 说明 |
---|---|---|
hash | String | Wi-Fi 密码的 Hash 值 |
callback | IndustryDataCallBack | 回调 |
代码示例
iDevice.newBackupManager().switchToBackupWifi("hash", new IndustryDataCallBack<SwitchWifiResultBean>() {
@Override
public void onSuccess(SwitchWifiResultBean switchWifiResultBean) {
Log.d(TAG, "onSuccess: ");
}
@Override
public void onFailure(String s, String s1) {
Log.d(TAG, "onFailure: ");
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈