NAV
java

快速上手

展示最基本的流程

文档说明

文中被删除线标识的接口为旧版SDK不建议使用 , 本次版本可正常使用。
我们将在以后的版本中删除本次弃用的接口。

关于对账号下的设备的的操作,有多个重载方法,可对子用户进行操作

例子:

SubscribeForUsername 订阅消息( 账户的所有设备 )

函数原型:

void SubscribeForUsername() throws MqttException;

可选填子用户名称:

void SubscribeForUsername(String userName) throws MqttException;

接口说明

——— 接口初始化 ———

初始化客户端

initClient 初始化客户端 用法示例:


/**1.继承 UsrCloudMqttClientAdapter */
public class ClientAdapter extends UsrCloudMqttClientAdapter {
/**2.重写 父类的方法*/
@Override
public void Connect(String userName, String passWord) throws MqttException {
super.Connect(userName, passWord);
}
}

创建一个类继承自 UsrCloudMqttClientAdapter 重写父类方法

class ClientAdapter extends UsrCloudMqttClientAdapter {}

客户端高级参数简单说明

属性名 属性值 说明
CleanSession true 做了特殊处理
ConnectionTimeout 20s 连接超时时间(秒)
KeepAliveInterval 600s 心态间隔(秒)
MaxInflight 100 最大飞行时间
AutomaticReconnect true 自动重连;

MaxInflight 含义:The max inflight limits to how many messages we can send without receiving acknowledgments.

MaxInflight 使用注意: please increase this value in a high traffic environment;有人SDK 默认为100条,如流量不能满足请联系技术支持。

AutomaticReconnect规则:
in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.

初始化客户端回调

initClientCallback 初始化客户端回调 用法示例:


/**1.继承 UsrCloudMqttCallbackAdapter */
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**2.重写 父类的方法*/
@Override
public void onConnectAck(int returnCode, String description) {
super.onConnectAck(returnCode, Description);
}
}

创建一个类继承自 UsrCloudMqttCallbackAdapter 重写父类方法

class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter{}

——— 连接和断开 ———

onConnectAck 连接响应回调函数

onConnectAck 响应回调函数 用法示例:


/**1.继承 UsrCloudMqttCallbackAdapter */
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**2.重写 onConnectAck 方法*/
@Override
public void onConnectAck(int returnCode, String description) {
super.onConnectAck(returnCode, Description);
}
}

函数原型:

onConnectAck(int returnCode, String description);

onConnectAck 定义

参数 描述
returnCode 返回码
description 返回码代表的含义

可能的返回码如下:

注意:返回码0x02才是真正完成与服务器的连接

返回码 返回码代表的含义
0x00 连接成功
0x01 连接断开
0x02 与服务器完成连接
0x03 与服务器连接断开

Connect 连接

Connect 连接 用法示例:

public void connect() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

}

函数原型:

void Connect(String userName, String passWord) throws MqttException;

注意:务必收到回调函数中的返回码为0x02“与服务完成连接”后再进行订阅和发布操作。必要情况下可手动增加延时

参数 描述
userName 用户名
passWord 密码
返回值 描述
无返回值 最终有没有连接成功,要通过 onConnectAck 设置的回调函数来判断。

ConnectByToken 连接

Connect 连接 用法示例:

public void ConnectByToken() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.ConnectByToken("testuser", "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJyb2NrIiwidWlkIjo4MzE4LCJ.....");

}

函数原型:

void ConnectByToken(String userName, String token) throws MqttException;

注意:务必收到回调函数中的返回码为0x02“与服务完成连接”后再进行订阅和发布操作。必要情况下可手动增加延时

参数 描述
userName 用户名
token 登陆凭证
返回值 描述
无返回值 最终有没有连接成功,要通过 onConnectAck 设置的回调函数来判断。

DisConnect 断开连接

DisConnect 连接 用法示例:


public boolean disConnect() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.取消连接 */
return clientAdapter.DisConnect();

}

函数原型:

boolean DisConnect() throws MqttException;

返回值 描述
boolean 成功返回 true ,失败返回 false

——— 订阅消息 ———

onSubscribeAck 订阅响应 回调函数

onSubscribeAck 响应 回调 用法示例:

/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onSubscribeAck 函数*/
@Override
public void onSubscribeAck(int messageId, String clientId, String topics, int returnCode) {
super.onSubscribeAck(messageId, clientId, topics,returnCode);

}
}

函数原型:

onSubscribeAck(int messageId, String clientId, String topics, int returnCode);

参数 描述
messageId 消息ID。
clientId 客户端ID。
topics 订阅主题
returnCode 返回码

可能的返回码如下:

返回码 返回码代表的含义
0x00 订阅成功
0x01 订阅失败

onDisSubscribeAck 取消订阅响应 回调函数

onDisSubscribeAck 响应 回调 用法示例:

/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onDisSubscribeAck 函数*/
@Override
public void onDisSubscribeAck(int messageId, String clientId, String topics, int returnCode) {
super.onDisSubscribeAck(messageId, clientId, topics,returnCode);

}
}

函数原型:

onDisSubscribeAck(int messageId, String clientId, String topics, int returnCode);

参数 描述
messageId 消息ID。
clientId 客户端ID。
topics 订阅主题
returnCode 返回码

可能的返回码如下:

返回码 返回码代表的含义
0x00 取消订阅成功
0x01 取消订阅失败

———— 云交换机操作 ————

SubscribeforDevId 订阅消息( 单个设备 )

SubscribeforDevId 订阅消息 用法示例:



public void SubscribeForDevId() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.订阅消息(单个设备)*/
clientAdapter.SubscribeForDevId("123456");
}

函数原型:

void SubscribeForDevId(String devId) throws MqttException;

参数 描述
devId 设备ID。指定要订阅哪个设备发来的消息。
返回值 描述
无返回值 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。

SubscribeForUsername 订阅消息( 账户的所有设备 )

SubscribeForUsername 订阅账号下的所有设备 用法示例:



public void SubscribeForUsername() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.订阅消息(账户的所有设备) */
clientAdapter.SubscribeForUsername();
}

函数原型:

void SubscribeForUsername() throws MqttException;

可选填子用户名称:

void SubscribeForUsername(String userName) throws MqttException;

返回值 描述
无返回值 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。

DisSubscribeforDevId 取消订阅( 单个设备 )

DisSubscribeforDevId 取消订阅 用法示例:



public void DisSubscribeforDevId() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.取消订阅消息(单个设备) */
clientAdapter.DisSubscribeforDevId("1234");

}

函数原型:

void DisSubscribeforDevId(String devId) throws MqttException;

参数 描述
devId 设备ID。指定要取消订阅哪个设备。
返回值 描述
void 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断

DisSubscribeforuName 取消订阅( 账户下的所有设备 )

DisSubscribeforuName 取消订阅 用法示例:



public void DisSubscribeforuName() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.取消订阅消息(账户下所有设备) */
clientAdapter.DisSubscribeforuName();

}

函数原型:

void DisSubscribeforuName() throws MqttException;

可选填子用户名称:

void DisSubscribeforuName(String userName) throws MqttException;

返回值 描述
void 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断

———— 云组态操作 ————

SubscribeParsedByDevId 订阅已解析的消息(单个设备)

SubscribeParsedByDevId 订阅已解析的消息 用法示例:



public void SubscribeForDevId() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.订阅消息(单个设备)*/
clientAdapter.SubscribeParsedByDevId("123456");
}

函数原型:

void SubscribeParsedByDevId(String devId) throws MqttException;

参数 描述
devId 设备ID。指定要订阅哪个设备发来的消息。
返回值 描述
无返回值 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。

SubscribeParsedForUsername 订阅消息( 账户的所有设备的监控状态变化 )

SubscribeParsedForUsername 订阅账号下的所有设备的监控状态变化 用法示例:



public void SubscribeParsedForUsername() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.订阅消息(账户的所有设备) */
clientAdapter.SubscribeParsedForUsername();
}

函数原型:

void SubscribeParsedForUsername() throws MqttException;

可选填子用户名称:

void SubscribeParsedForUsername(String userName) throws MqttException;

返回值 描述
无返回值 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。

SubscribeAllDevParsedForUsername 订阅消息( 账户的所有设备的数据变化 )

SubscribeAllDevParsedForUsername 订阅账号下的所有设备的数据变化 用法示例:



public void SubscribeAllDevParsedForUsername() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.订阅消息(账户的所有设备) */
clientAdapter.SubscribeAllDevParsedForUsername();
}

函数原型:

void SubscribeAllDevParsedForUsername() throws MqttException;

可选填子用户名称:

void SubscribeAllDevParsedForUsername(String userName) throws MqttException;

返回值 描述
无返回值 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。

DisSubscribeParsedforDevId 取消订阅已解析的消息( 单个设备 )

DisSubscribeParsedforDevId 取消订阅已解析的消息 用法示例:



public void DisSubscribeParsedforDevId() throws MqttException {

/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.取消订阅消息(单个设备) */
clientAdapter.DisSubscribeParsedforDevId("1234");

}

函数原型:

void DisSubscribeParsedforDevId(String devId) throws MqttException;

参数 描述
devId 设备ID。指定要取消订阅哪个设备。
返回值 描述
void 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断

DisSubscribeParsedForUsername 取消订阅账号下的所有设备的监控状态变化( 账户下的所有设备 )

DisSubscribeParsedForUsername 取消订阅账号下的所有设备的监控状态变化 用法示例:



public void DisSubscribeParsedForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.取消订阅消息(账户下所有设备) */
clientAdapter.DisSubscribeParsedForUsername();

}

函数原型:

void DisSubscribeParsedForUsername() throws MqttException;

可选填子用户名称:

void DisSubscribeParsedForUsername(String userName) throws MqttException;

返回值 描述
void 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断

DisSubscribeAllDevParsedForUsername 取消订阅账号下的所有设备的数据变化( 账户下的所有设备 )

DisSubscribeAllDevParsedForUsername 取消订阅账号下的所有设备的监控状态变化 用法示例:



public void DisSubscribeAllDevParsedForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.取消订阅消息(账户下所有设备) */
clientAdapter.DisSubscribeAllDevParsedForUsername();

}

函数原型:

void DisSubscribeAllDevParsedForUsername() throws MqttException;

可选填子用户名称:

void DisSubscribeAllDevParsedForUsername(String userName) throws MqttException;

返回值 描述
void 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断

——— 推送消息 ———

onPublishDataAck 推送响应 回调函数

onPublishDataAck 用法示例:


/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onPublishDataAck 函数*/
@Override
public void onPublishDataAck(int messageId, String topic, boolean isSuccess) {
super.onPublishDataAck(messageId, topic, isSuccess);
}
}

函数原型:

void onPublishDataAck(int messageId, String topic, boolean isSuccess);

参数 描述
messageId 消息ID。
topic 推送主题
isSuccess 推送标识符。

可能的标识符如下:

标识符 标识符代表的含义
true 推送成功
false 推送失败

onPublishDataResult 本次推送结果回调函数

onPublishDataResult 用法示例:


/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onPublishDataAck 函数*/
@Override
public void onPublishDataResult(int messageId, String topic) {
super.onPublishDataResult(messageId, topic);
}
}

函数原型:

void onPublishDataResult(int messageId, String topic);

参数 描述
messageId 消息ID
topic 本次推送主题

可通过onPublishDataResult的messageId和onPublishDataAck的messageId比对确定发送消息是否对应。

———— 云交换操作 ————

publishForDevId 推送数据(向单个设备)

publishForDevId 用法示例:


public void publishForDevId() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.初始化测试数据 */
byte[] data = { 0x00, 0x01, 0x02 };

/* 6.发送数据 */
clientAdapter.publishForDevId("1234", data);

}

函数原型:

void publishForDevId(String devId, byte[] data) throws MqttException;

参数 描述
devId 设备ID,指定要把数据发给哪个设备。只能填一个
data 要发送的数据。
返回值 描述
无返回值 最终推送结果要通过 onPublishDataAck 设置的回调函数来判断。

publishForuName 推送数据(向账户下的所有设备)

publishForuName 用法示例:


public void publishForuName() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.初始化测试数据 */
byte[] data = { 0x00, 0x01, 0x02 };

/* 6.发送数据 */
clientAdapter.publishForuName(data);

}

函数原型:

void publishForuName(byte[] data) throws MqttException;

可选填子用户名称:

void publishForuName(String userName , byte[] data) throws MqttException;

参数 描述
data 要发送的数据。
返回值 描述
无返回值 最终推送结果要通过 onPublishDataAck 设置的回调函数来判断。

———— 云组态操作 ————

publishParsedSetDataPoint 设置单个数据点值

publishParsedSetDataPoint 用法示例:


public void publishParsedSetDataPoint() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.发送数据 */
clientAdapter.publishParsedSetDataPoint("00001234","1","12","12.00");

}

函数原型:

void publishParsedSetDataPoint(String devId, String slaveIndex, String pointId, String value) throws MqttException;

参数 描述
devId 设备ID
slaveIndex 从机序号
pointId 数据点ID
value 数据点的值
返回值 描述
无返回值 暂无回调

publishParsedQueryDataPoint 查询单个数据点值

publishParsedQueryDataPoint 用法示例:


public void publishParsedQueryDataPoint() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();

/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);

/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");

/* 5.发送数据 */
clientAdapter.publishParsedQueryDataPoint("00001234", "1", "12");

}

函数原型:

void publishParsedQueryDataPoint(String devId, String slaveIndex, String pointId) throws MqttException;

参数 描述
devId 设备ID
slaveIndex 从机序号
pointId 数据点ID
返回值 描述
无返回值 暂无回调

——— 接收消息 ———

———— 交换机操作 ————

onReceiveEvent 收到数据 回调函数

onReceiveEvent 用法示例:


public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
@Override
public void onReceiveEvent(int messageId, String topic, byte[] data) {
super.onReceiveEvent(messageId, topic, data);
}
}

函数原型:

void onReceiveEvent(int messageId, String topic, byte[] data);

参数 描述
messageId 消息ID
topic 主题消息来源
data 收到的数据

———— 云组态操作 ————

onReceiveParsedEvent 收到已解析数据的回调函数

onReceiveParsedEvent 用法示例:


public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
@Override
public void onReceiveParsedEvent(int messageId, String topic, String jsonData) {
super.onReceiveParsedEvent(messageId, topic, jsonData);
}
}

函数原型:

void onReceiveParsedEvent(int messageId, String topic, String jsonData);

参数 描述
messageId 消息ID
topic 主题消息来源。
jsonData 已解析的收到的数据

常见返回JsonData举例

数据点操作应答
(目前只用于 COAP类型的设备,并且设备作为 modbus 主机)

{
"optionResponse": [
{
"result":"1", //1 操作成功 0 代表不成功
"dataId":"100",//数据点,如果是透传那么该字段为空
"option":"1" //1.数据处于待发送状态 2.数据已发送
}
],
"devName":"123"
}

设备上下线推送

{
"devStatus":
{
"devName":"123",
"status":1 //1 上线 0 下线
}
}

设备报警推送

{
"devAlarm": {
"devName":"123",
"pointId":"123", //数据点 id
"dataName":"温度", //数据点名称
"value":"12.11", //触发报警值
"alarmValue":"12.00", //设定的报警值
"alarmCondition":"0", //开关 ON(0)、开关 OFF(1)、数值低于(2)、数值高于(3)、数值介于(4)、数值高于 max 低于 min(5),
"alarmState":"1" //报警状态 开始报警(1) 、恢复正常(0)

}
}

——— 工具类 ———

USRToolBytesToUtf8str 字节数组转UTF8的字符串

USRToolBytesToUtf8str 用法示例:


public void USRToolBytesToUtf8str() throws UnsupportedEncodingException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.调用函数 */
String result = clientAdapter.USRToolBytesToUtf8str(byte[]...);
}

函数原型:

String USRToolBytesToUtf8str(byte[] data) throws UnsupportedEncodingException;

参数 描述
data 字节数组

USRToolUtf8strToBytes 字符串转utf-8数组

USRToolUtf8strToBytes 用法示例:


public void USRToolUtf8strToBytes() throws UnsupportedEncodingException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();

/* 2.调用函数 */
byte[] result = clientAdapter.USRToolUtf8strToBytes(String data);
}

函数原型:

byte[] USRToolUtf8strToBytes(String data) throws UnsupportedEncodingException;

参数 描述
data 字符串

常见问题

Jar版本差异

配置 用法示例:


android {
compileSdkVersion 25
buildToolsVersion 25.0.3

defaultConfig {
...
jackOptions {
enabled true
}
}
dexOptions {
incremental true
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the ‘java’ gradle plugin in a library submodule add
targetCompatibility = ‘1.7’
sourceCompatibility = ‘1.7’
to that submodule’s build.gradle file.

原因简要说明:
jar包是基于jdk 1.8的 如果编译工具低于1.8会报以上编译异常
解决方法:
在Module的build.gradle配置文件中 加上一下配置 使你的项目适配JDK1.8。

jackOptions{ enabled true }
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }

更新历史

版本 日期 更新内容 更新人
1.0 2017-7-18 初版 石志远
1.1 2017-11-30 增加云组态操作,增加推送Result响应 石志远
1.2 2017-1-8 设备下增加从机概念,删除上个版本弃用接口 石志远
1.3 2017-5-2 1.云组态增加订阅账号下的所有设备的数据变化 2.增加订阅推送到子用户函数 3.增加token连接方法 4.增加两个工具类接口 石志远