设备相关
设备配网
手机需要连到热点,并且填写wifi的ssid和password来进行设备的快速配网。
增加配网超时时间的配置,在任意处可以修改WifiConfig的对应字段。快联发现超时时间默认为60秒,设置建议不少于20秒。
目前支持的芯片有:乐鑫ESP8266、TI CC3200、汉枫LPB120、庆科WIFI模组。
// ESP8266 和RDA快联超时时间不可设置,内部大概60秒。
/**
* AirKiss快联超时时间
*/
public static int AirKissSmartLinkTime = 60000;
/**
* 汉枫快联超时时间
*/
public static int HfmartLinkTime = 60000;
/**
* 庆科mico快联超时时间
*/
public static int MicoSmartLinkTime =60000;
/**
* MTK快联超时时间
*/
public static int MTKSmartLinkTime = 60000;
/**
* 高通快联超时时间
*/
public static int QCSmartLinkTime = 60000;
/**
* TICC3200快联超时时间
*/
// public static int TISmartLinkTime = 60000;
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
ssid | String | Wifi 的ssid | 是 | |
password | String | Wifi的password | 是 | |
productId | Int | 设备的产品Id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:以下startXXX方法均有对应的stopXXX方法方便用户停止发现设备。
ESP8266的芯片:
IotCloudSDK.getDeviceManager().startEspSmart(ssid,password,productId,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
TI CC3200的芯片:
IotCloudSDK.getDeviceManager(). startTiSmart(ssid, password,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
汉枫wifi芯片
IotCloudSDK.getDeviceManager().startHFSmart(ssid, password,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
庆科MICO芯片
IotCloudSDK.getDeviceManager().startMicoSmart(ssid, password,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
高通芯片
IotCloudSDK.getDeviceManager().startQCSmart(ssid, password,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
Rda芯片
IotCloudSDK.getDeviceManager().startRdaSmart (ssid, password,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
AirKiss芯片
IotCloudSDK.getDeviceManager().startAirKissSmart (ssid, password,
new ISDKCallback () {
@Override
public void onSuccess() {
// 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配网失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorCode | String | 错误码 | 参照错误码 | 是 |
errMsg | String | 错误消息 | 参照错误码信息 | 是 |
cloudDevice | CloudDevice | 返回成功信息 | 返回success或者需求数据 | 是 |
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
iotId | String | 设备的iot_id | 从getIotId()获取 | 是 |
productId | Int | 产品id | 是 | |
productName | String | 产品名称 | 是 | |
iotToken | String | 设备的token | 从getIotToken()获取 | 是 |
deviceMac | String | 设备MAC | 是 | |
status | Int | 预留字段 | 目前没有使用 | 否 |
AP设备配网
用户把设备当做AP的时候可以使用此方法配网
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
ssid | String | 路由器ssid | 要连接的路由器名称 | 是 |
password | String | 路由器密码 | 是 | |
timeout | int | 超时时间 | 毫秒 | 是 |
// 对AP设备发送目标路由器的ssid和密码
APNetWorkController netWorkController =
new APNetWorkController(mView.getActivityContext().getApplicationContext());
netWorkController.start(ssid, password, timeout, new APNetWorkController.Listener() {
@Override
public void onSuccess() {
// 可以执行发现设备的逻辑了
}
@Override
public void onError(ErrorMessage errorMessage) {
// 失败
}
});
发现设备
用户在设备配网成功后进行执行局域网发现,设备会返回自身的数据iotId、iotToken和mac给手机端,手机端保存之后可以对该设备进行处理。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
productIds | List |
产品id | 是 | |
timeout | int | 发现超时时间 | 单位:毫秒(ms) | 是 |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().startSearchDevice(productIdlist, timeout,
new DeviceFoundListener() {
@Override
public void onError(ErrorMessage errorMessage) {
}
@Override
public void findDevice(CloudDevice device) {
// 发现到设备了,局域网中有多个设备的时候会持续回调
}
@Override
public void noFindDevice() {
// 结束,或者没有发现设备
}
});
绑定设备
用户需要与发现的设备进行绑定,能够控制设备以及收发设备的信息。一个设备只能被一个用户绑定,不允许多个用户绑定一个设备。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().bindDevice(device
new Icallback<String>() {
@Override
public void onSucess(String result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | String | 设备显示名称 | 是 |
解绑设备
用户需要与已经绑定的设备进行解绑。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().unbindDevice(device, new ISDKCallback() {
@Override
public void onSucess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取设备列表
手机端获取已经绑定设备和被分享的设备信息。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceList(
new Icallback>(){
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
传入true会拉取设备功能点最新数据
见下面dataMap字段
getDeviceList(true, new Icallback>());
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
iotId | String | 设备的iot_id | getIotId()获取 | 是 |
iotToken | String | 设备的token | getIotToken()获取 | 是 |
deviceMac | String | 设备的mac | 是 | |
displayName | String | 设备的显示名称 | 是 | |
online | boolean | 设备是否在线 | 是 | |
productId | Int | 产品id | 是 | |
flag | Int | 设备是否是分 享设备 |
0表示不是分享设备, 1表示该设备是分享设备 |
是 |
shared | String | 分享者姓名或 者手机号 |
flag为0,该字段为空,flag为1, 该字段为分享者姓名或者手机号 |
是 |
fUserId | Int | 分享者的用户id | 是 | |
moduleVersion | String | 当前设备固件 版本号 |
是 | |
subIotId | String | 子设备的id | 通过getSubIotId()获取, 当前设备如果是子设备, 本字段就会有值,可以通过 isSubDevice()判断当前 CloudDevice是否是子设备 |
否 |
subsetId | String | 子设备的用户 协商id |
通过getSubsetId()获取, 由网关设备等上传, 用户需要与设备端开发人员协商 |
否 |
subsetName | String | 子设备的用户 协商名称 |
通过getSubsetName()获取, 由网关设备等上传, 用户需要与设备端开发人员协商 |
否 |
subsetType | String | 子设备的用户 协商类型 |
通过getSubsetType()获取, 由网关设备等上传, 用户需要与设备端开发人员协商 |
否 |
rId | int | 房间id | 设备所属房间id | 否 |
roomName | String | 房间名称 | 设备所属房间名称 | 否 |
gid | int | 分组id | 设备所属分组id | 否 |
groupName | String | 分组名称 | 设备所属分组名称 | 否 |
fId | int | 家庭id | 设备所属家庭id | 否 |
familyName | String | 家庭名称 | 设备所属家庭名称 | 否 |
dataMap | Map |
设备最新功 能点数据 |
以键值对的形式 对于二进制数据这里是 base64字符串 可以使用 SDKUtils.base64ToByteArray 方法转换成二进制数组 |
否 |
获取单个设备的详细信息
手机端获取指定设备的详细信息。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 设备 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceInfo(device, new ISDKCallback
@Override
public void onSucess(DeviceInfo result ) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | DeviceInfo | 返回成功信息 | 返回success或者需求数据 | 是 |
result 参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
iotId | String | 设备的iot_id | 通过 | 是 |
deviceMac | String | 设备的mac | 是 | |
deviceType | String | 设备的类型 | 如:手环、户外、车载等 | 是 |
wifiType | String | wifi模组的类型 | 如:Esp8266、CC3200等 | 是 |
displayName | String | 设备的显示名称 | 是 | |
online | boolean | 设备是否在线 | 是 | |
isLinkage | boolean | 设备是否可以联动 | 是 | |
dataPointNum | Int | 该设备的功能点个数 | 是 | |
deviceIp | String | 设备的ip地址 | 设备联网的出口ip | 是 |
ipLocation | String | 设备的经纬度 | 是 |
获取产品上报功能点
手机查询产品官网上创建的可上报功能点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
productId | int | 产品id | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getReportedDP(productId,
new ISDKCallbackList
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
id | int | 功能点的id | 是 | |
unit | int | 功能点数据类型 | 0 int 1 bool 2 enum 3 string 4 float 5 error 错误类型(字符串) 6 binary 二进制类型 |
是 |
updateTime | Time | 创建时间 | 13位时间戳 | 是 |
name | String | 功能点名称 | 是 | |
value | String | 功能点定义的值 | 多个数据之前逗号分隔 | 是 |
isdelete | int | 该功能点是否删除 | 0 删除,1未删除 | 是 |
type | int | 功能点类型 | 1可上报可下发, 2上报, 3下发 | 是 |
key | String | 功能点变量 | 是 | |
productId | int | 功能点的产品id | 是 |
获取产品下发功能点
手机查询产品官网上创建的可下发功能点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
productId | int | 产品id | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getIssuedDP(productId, new Icallback>() {
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
id | int | 功能点的id | 是 | |
unit | int | 功能点数据类型 | 0 int 1 bool 2 enum 3 string 4 float 5 error 错误类型(字符串) 6 binary 二进制类型 |
是 |
updateTime | Time | 创建时间 | 13位时间戳 | 是 |
name | String | 功能点名称 | 是 | |
value | String | 功能点的值 | 多个数据之前逗号分隔 | 是 |
isdelete | int | 该功能点是否删除 | 0 删除,1未删除 | 是 |
type | int | 功能点类型 | 1可上报可下发, 2上报, 3下发 | 是 |
key | String | 功能点变量 | 是 | |
productId | int | 功能点的产品id | 是 |
获取设备某个功能点上传单条数据
手机端查询某绑定设备的最新一条数据。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
key | String | 功能点的变量 | 该产品的上报功能点 | 是 |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceData(device, key, new Icallback
@Override
public void onSucess(DeviceData result ) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | DeviceData | 返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
time | String | 时间戳 | Unix时间戳 | 是 |
value | String | 数值 | 是 |
获取设备某个功能点上传多条数据
手机端查询某绑定设备当天的指定数目的数据。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
key | String | 功能点的变量 | 该产品的上报功能点 | 是 |
count | Int | 获取多少条数据 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceListData(device, key, count,
new Icallback>() {
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
time | String | 时间戳 | Unix时间戳 | 是 |
value | String | 数值 | 是 |
修改设备信息
手机修改已经绑定的某设备的信息,修改设备的显示名称。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备的 | 是 | |
displayName | String | 设备显示名 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().modifyDeviceName(device, displayName,
new ISDKCallback() {
@Override
public void onSucess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
检查设备固件版本
检查设备固件版本是否需要升级。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getOTAManager().checkDeviceOTA(device, new Icallback
@Override
public void onSucess(OTAInfo result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | OTAInfo | hasNewVersion返回 true的时候说明有新 的版本可升级 |
otaDesc 字段表示OTA 更新说明,可能为空 |
是 |
获取设备某个功能点所有数据列表
获取设备历史数据(数据会一分钟进行一次合并)
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
key | String | 设备功能点 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getHistoryDeviceDataList(device,key,
new Icallback>() {
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
time | String | 时间戳 | Unix时间戳 | 是 |
value | String | 数值 | 是 |
获取设备所有功能点最新数据
获取设备所有功能点最新数据,如果在网页配置的功能点是可上报的则只能获取到当天最新的,如果当天设备没有上传最新的数值,则为空,如果需要保存某些功能点最新的数据,需要将功能点定义成可上报可下发的。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getAllLatestData(device,
new Icallback
@Override
public void onSucess(Map
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | Map |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | Map | 返回指定条数的数据 | 数据以key value的形式返回,如果数据点是 二进制的,则返回的value是base64字符串, 可以使用SDK提供的SDKUtils类转换成byte数组 |
是 |
获取设备所在天气和地理位置
获取设备所在天气和地理位置。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定设备的iotId | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceWeatherAndLocation(device,
new Icallback
@Override
public void onSucess(CloudLocationAndWeather result ) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | CloudLocationAndWeather | 返回成功信息 | 返回success或者需求数据 | 是 |
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
city | String | 市 | 是 | |
country | String | 国家 | 是 | |
operator | String | 区/街道 | 是 | |
province | String | 省 | 是 | |
humidity | String | 湿度 | 是 | |
pm25 | String | 可吸入颗粒物 | 是 | |
skycon | String | 天气概况 | 是 | |
temperature | String | 温度 | 是 |
获取设备某个功能点用户操作数据
获取操作该设备指定功能点的数据,包含操作的用户昵称、操作的数据、时间戳。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
dpKey | String | 设备的功能点 | ||
count | int | 数据列表的数量 | ||
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getUserOperatorList(device, dpKey,
count, new Icallback>() {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
userInfo | String | 用户的昵称或手机号或邮箱 | 优先返回的是昵称,按先后顺序的 优先级能够获取到什么数据就返回什么数据 |
是 |
timeStamp | String | Unix时间戳 | ||
dataValue | String | 用户操作的数据 |
获取设备某个功能点设备操作数据
获取设备操作的数据,一般是设备物理按键操作的功能点、操作的数据、时间戳,这个功能点需要。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
dpKey | String | 设备的功能点 | 是 | |
count | int | 数据列表的数量 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceOperatorList(device, dpKey,
count, new Icallback>() {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
userInfo | String | 这里数据一直都是空 | 只是复用了用户操作行为实体类 | 是 |
timeStamp | String | Unix时间戳 | ||
dataValue | String | 用户操作的数据 |
添加定时任务
为设备配置定时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
time | Int | Unix时间戳 | 是 | |
circle | Int | 星期重复 | 使用Week类,可以使用 Week.MON & Week.WED 来实现多个星期的重复 Week.NULL是不按星期重复只执行一次。 |
是 |
dpKey | String | 功能点变量名 | 是 | |
dpValue | String | 功能点的值 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().addTimer(device, time, circle, dpKey, dpValue, dpKey,
new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
修改定时任务
为设备修改定时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
id | Int | 定时任务的id | 是 | |
time | Int | Unix时间戳 | 是 | |
circle | Int | 星期重复 | 使用Week类,可以使用 Week.MON & Week.WED 来实现多个星期的重复 |
是 |
dpKey | String | 功能点变量名 | 是 | |
dpValue | String | 功能点的值 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().updateTimer(device, time, circle, dpKey, dpValue, dpKey,
count, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取定时任务列表
获取定时任务列表。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getTimerList(device, new Icallback> () {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | Timer | 定时任务 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
id | Int | 定时任务id | 是 | |
iotId | String | 设备id | 是 | |
time | Int | Unix时间戳 | 是 | |
dpId | Int | 功能点的id | 是 | |
dpKey | String | 功能点的key | 是 | |
dpValue | String | 功能点的值 | 是 | |
status | Int | 状态,0关闭1开启 | 是 |
Tiemr.getWeek()可以获取重复的星期列表List
打开定时任务
打开关闭的定时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timerId | Int | 定时任务的id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().openTimer(timerId, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
关闭定时任务
关闭打开的定时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timerId | Int | 定时任务的id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().closeTimer(timerId, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
删除定时任务
删除定时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
timerId | Int | 定时任务的id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().deleteTimer(timerId, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
添加延时任务
为设备配置延时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
time | Int | Unix时间戳 | 要延时的时刻 | 是 |
timeInterval | Int | 要延时的秒钟数 | 延时多久 | 是 |
dpKey | String | 功能点变量名 | 是 | |
dpValue | String | 功能点的值 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().addDelayTime(device, time, timeInterval, dpKey, dpValue,
dpKey, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
修改延时任务
修改设备的延时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
id | Int | 定时任务的id | 是 | |
time | Int | Unix时间戳 | 是 | |
timeInterval | Int | 要延时的秒钟数 | 延时多久 | 是 |
dpKey | String | 功能点变量名 | 是 | |
dpValue | String | 功能点的值 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().updateDelayTime(device, time, timeInterval, dpKey, dpValue, dpKey, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取延时任务列表
获取延时任务列表。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDelayTimeList(device,
new Icallback>() {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | DelayTime | 定时任务 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
id | Int | 定时任务id | 是 | |
iotId | String | 设备id | 是 | |
time | Int | Unix时间戳 | 是 | |
dpId | Int | 功能点的id | 是 | |
dpKey | String | 功能点的key | 是 | |
dpValue | String | 功能点的值 | 是 | |
timeInterval | Int | 延时的秒钟数 | ||
status | Int | 状态,0关闭1开启 | 是 |
关闭延时任务
关闭延时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
delayTimeId | Int | 延时任务的id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().closeDelayTime(timerId, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
删除延时任务
删除延时任务。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
delayTimeId | Int | 定时任务的id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().deleteDelayTime(timerId, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
删除子设备
删除子设备。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 子设备 | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().delSubDevice(device, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
通过id获取设备和子设备
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
iotId | String | 设备id | 是 | |
subIotId | String | 子设备id | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
获取设备信息,信息同设备列表中的CloudDevice
IotCloudSDK.getDeviceManager().getDevice(iotId, new Icallback<CloudDevice> () {
@Override
public void onSuccess(CloudDevice result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
获取子设备设备信息,信息同设备列表中的CloudDevice
IotCloudSDK.getDeviceManager().getDevice(iotId, subIotId, new Icallback<CloudDevice> () {
@Override
public void onSuccess(CloudDevice result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取多个数据点的汇总数据
从最近开始往前倒,获取多个数据点的汇总数据,以时间为维度进行合并,可能会确实某些时间或者某些时间下对应key的数据
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 设备 | 是 | |
keys | List |
设备功能点 | 是 | |
count | int | 数量 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getCombinedDeviceData(device, keys, count,
new Icallback<List<CombinedDeviceData>> () {
@Override
public void onSuccess(List<CombinedDeviceData> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
result参数说明
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
tt | String | UNIX时间戳 | 是 | |
dpv | List |
键值对list | 设备数据点的key和对应的值 | 是 |
KeyAndValue | KeyAndValue | 键值对 | k表示功能点的变量名 v表示功能点的值 | 是 |
获取多个数据点的以天为单位合并的数据集合
获取时间范围内的多个key的时间和值的集合,以天为维度合并数据,取平均值。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 设备 | 是 | |
keys | List |
设备功能点 | 是 | |
startYear | int | 起始年份 | 是 | |
startMonth | int | 起始月份 | 是 | |
startDay | int | 起始日 | 是 | |
endYear | int | 结束年份 | 是 | |
endMonth | int | 结束月份 | 是 | |
endDay | int | 结束日 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceDataByDate(device, keys, startYear,
startMonth, startDay, endYear, endMonth, endDay,
new Icallback<Map<String, List<TimeAndValue>>> () {
@Override
public void onSuccess(Map<String, List<TimeAndValue>> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | Map |
是 |
result参数说明
Map
TimeAndValue参数说明参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
t | String | UNIX时间戳 | 是 | |
v | String | 对应的值 | 是 |
获取多个数据点的以月为单位合并的数据集合
获取时间范围内的多个key的时间和值的集合,以月为维度合并数据,取平均值。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 设备 | 是 | |
keys | List |
设备功能点 | 是 | |
startYear | int | 起始年份 | 是 | |
startMonth | int | 起始月份 | 是 | |
endYear | int | 结束年份 | 是 | |
endMonth | int | 结束月份 | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getDeviceDataByMonth(device, keys, startYear, startMonth, endYear, endMonth,
new Icallback<Map<String, List<TimeAndValue>>> () {
@Override
public void onSuccess(Map<String, List<TimeAndValue>> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | Map |
是 |
result参数说明
Map
TimeAndValue参数说明参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
t | String | UNIX时间戳 | 是 | |
v | String | 对应的值 | 是 |
通过产品id获取产品信息
通过产品id获取产品信息,返回结果同获取产品信息列表
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
productId | int | 产品id | 是 | |
Icallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getProductInfo(productId,
new Icallback<Product> () {
@Override
public void onSuccess(Product result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | Product | 是 |
根据日期获取设备某个功能点所有数据列表
获取设备历史数据(数据会一分钟进行一次合并)
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
device | CloudDevice | 绑定的设备 | 是 | |
key | String | 设备功能点 | 是 | |
startDate | TimeData | 开始时间配置 | 是 | |
endDate | TimeData | 结束时间配置 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
TimeData startDate = new TimeData(2019, 1, 1);
TimeData endDate = new TimeData(2019, 1, 30);
IotCloudSDK.getDeviceManager().getAllDeviceDataByDate(device,key,startDate,endDate,
new Icallback>() {
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
time | String | 时间戳 | Unix时间戳 | 是 |
value | String | 数值 | 是 |
通过MAC地址查询设备绑定信息
通过MAC地址查询设备绑定信息
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
macList | List |
设备的mac地址信息列表 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
BindDeviceReqInfo bindDeviceReqInfo =
new BindDeviceReqInfo(“00:00:00:00:00:00”); // 传入设备对应的mac地址
IotCloudSDK.getDeviceManager().getDeviceBindInfoByMac(macList,
new ICallback>() {
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的mac地址 | 是 | |
displayName | String | 设备的名称 | 是 | |
bindStatus | int | 绑定状态 | 0:未绑定,1:被自己绑定,2:被其他人绑定 | 是 |
bindUserName | String | 绑定用户昵称 | 是 | |
bindUserTel | String | 绑定用户手机号 | 是 | |
bindUserMail | String | 绑定用户邮箱 | 是 |
通知音响盒子设备列表同步
设备解绑的时候,第三方音箱盒子的设备列表是无法同步的,需要调用该接口进行同步设备列表
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
deviceMac | String | 设备mac | 是 | |
UUID | String | 唯一标识 | 代表着: 亚马逊的endpointId 天猫的skill_id 谷歌的agentUserId |
是 |
例子:
IotCloudSDK.getDeviceManager().getNotifyAudioDevice(deviceMac, UUID, new ICallback<String>() {
@Override
public void onSuccess(String result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | String | 返回成功信息 | 返回success | 否 |
长连接相关
MQTT消息发送和接收
消息接收的配置
消息接受采用广播的形式,用户使用静态或者动态的形式注册广播接收者。
例子:
动态注册原理相同,action和permission与静态广播中的一致即可。
例子:
public class MqttBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
DeviceController.onReceive(intent);
}
}
消息发送的配置
消息发送一般只用DeviceController类
DeviceController deviceController =
new DeviceController(CloudDevice device); // 可以通过CloudDevice初始化
构造一个DeviceController后可以多次使用,下发多次命令或数据。
注意在页面退出(Activity onDestroy)或者不使用DeviceController的时候需要调用
deviceController.onDestroy();
来回收内存,避免内存泄漏。
全局消息接收
全局消息目前包括收到设备分享消息、收到设备新固件版本消息、收到错误消息。
DeviceController.bindGlobalMessage(new DeviceController.GlobalListener() {
@Override
public void onMessage(CloudMessage cloudMessage) {
if (cloudMessage.getErrorMessage().getCode()
== CommonError.MQTT_MESSAGE_SUCCESS) {
// success
switch (cloudMessage.getType()) {
// 有设备需要手动OTA升级
case CloudMessageType.TYPE_OTA_REV:
break;
// 有分享消息,请到分享消息列表查看
case CloudMessageType.TYPE_SHARE_REV:
int shareType = ShareMessageType.getShareType(cloudMessage);
if (shareType == ShareMessageType.TYPE_DEVICE) {
// 设备分享消息
} else if (shareType == ShareMessageType.TYPE_FAMILY) {
// 家庭分享消息
}
break;
}
} else {
// error错误信息
}
}
});
CloudMessage返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | String | 数据 | 是 | |
iotId | String | 设备id,可能为空 | 是 | |
productId | int | 产品id,可能为空 | 是 | |
getErrorMessage() | ErrorMessage | 获取错误信息 | 是 | |
getType() | int | 消息类型 | 是 |
其他消息接收
DeviceController deviceController =
new DeviceController(CloudDevice device);
透传字符串(Push)消息
deviceController.setPushListener(new DeviceController.PushListener() {
@Override
public void onPush(CloudMessage cloudMessage) {
if (!TextUtils.isEmpty(cloudMessage.data)) {
cloudMessage.data // 设备透传上来的字符串数据
}
});
透传二进制数据
deviceController.setBinaryPushListener(new DeviceController.BinaryPushListener() {
@Override
public void onBinaryPush(CloudMessage cloudMessage) {
if (!TextUtils.isEmpty(cloudMessage.binaryData)) {
cloudMessage.binaryData // 设备透传上来的字符串数据
}
});
设备功能点更新消息
deviceController.setDPUPdateListener(new DeviceController.DPUpdateListener() {
@Override
public void onDPUpdate(List
// 设备功能点更新(状态改变)
}
});
设备错误信息
deviceController.setErrorListener(new DeviceController.ErrorListener() {
@Override
public void onError(CloudMessage cloudMessage) {
// 设备的错误信息,例如设备不在线
cloudMessage.getErrorMessage();
}
});
下发常规命令
手机端下发命令控制设备,比如让设备关闭、开启等。
DeviceController deviceController =
new DeviceController(CloudDevice device);
构造设备功能点数据
MessageData.Builder builder = new MessageData.Builder();
builder.put(key, value);
// 注意DeviceController回收
deviceController.sendCommand(builder, new ISDKCallback() {
@Override
public void onSuccess() {
Log.d(“TAG”, “command发送成功”);
}
@Override
public void onError(ErrorMessage errorMessage) {
Log.d(“TAG”, “command发送失败” + errorMessage.toString());
}
});
手机透传(push)消息到设备
手机向设备发送消息。
DeviceController deviceController =
new DeviceController(CloudDevice device);
// 发送字符串
DeviceController.push(“this is phone push message”); // 注意DeviceController回收
// 发送二进制数据
DeviceController.pushBinary(byte[] array); // 注意DeviceController回收
发送分享消息
分享者分享设备和被分享者接收消息都需要调用该接口通知对方消息。
DeviceController deviceController =
// 产品id必填项,当发送家庭分享消息时可以取任意产品id
new DeviceController(mDeviceSharingBean.productId,
// 可以通过产品id和设备iotId初始化,当发送家庭分享消息时iotId可填入”” 空字符串
mDeviceSharingBean.iotId);
deviceController.sendShare(tid, type); // 对方用户的id
// 不用的时候或者Activity退出的时候需要回收
deviceController.onDestroy();
sendShare的type字段使用ShareMessageType.TYPE_XXX来设置分享消息类型
目前支持TYPE_DEVICE // 设备分享消息
TYPE_FAMILY // 家庭分享消息
MQTT连接状态
获取MQTT连接状态。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
IconnectionStatusListener | Function | 回调函数 | 是 |
例子:
IotCloudSDK.setConnectionStatusListener(new IconnectionStatusListener() {
@Override
public void onConnectionStatus(int result) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | int | 连接状态 | 1 已连接未订阅 2 已连接已订阅 3 未连接 | 是 |
设备手动OTA升级
查询可以OTA升级的设备
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
ICallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getOTAManager().getAllOTAUpdateInfo(ICallback>(){
@Override
public void onSuccess(OTAUpdateInfo result) {
// 这里返回的数据都可以调用获取单个设备升级状态和升级进度
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
productId | int | 产品id | 是 | |
name | String | OTA升级名称,管理平台上传ota 升级包的时候可以填写 |
是 | |
mcuVersion | String | 版本号 | 要升级的版本 | 是 |
mcuSizeValue | long | 包的大小,可以上传两个mcu | 是 | |
mcuSize2Value | long | 包的大小,可以上传两个mcu | 是 | |
description | String | OTA升级描述 | 是 | |
iotId | String | 设备唯一id | 是 | |
deviceMac | String | 设备mac地址 | 是 | |
deviceName | String | 设备名称 | 是 |
向设备主动发送检查升级指令
发送检查升级指令。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
iotId | String | 设备唯一id | 是 | |
ISDKCallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getOTAManager().doDeviceCheckOTA(iotId, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取单个设备升级状态和升级进度
获取设备的升级状态和升级进度。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
iotId | String | 设备唯一id | 是 | |
mcuVersion | String | 要升级的目标版本号 | 是 | |
ICallback | Function | 回调函数 | 是 |
例子:
IotCloudSDK.getOTAManager().cancelLogout(iotId, mcuVersion,
new ICallback
@Override
public void onSuccess(OTAUpdateProgress result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
status | int | 状态包含5种: 0未下载 可以向设备发送检查升级指令 1正在下载 2已下载 3更新完成 4更新失败 5正在升级 |
是 | |
mcuSizeValue | long | 包的大小,可以上传两个mcu | 是 | |
mcuSize2Value | long | 包的大小,可以上传两个mcu | 是 | |
iotId | String | 设备唯一id | 是 | |
totalSizeValue | long | 总共大小 | 下载完成后会变为0,即状态2的时候 | 是 |
downloadSizeValue | long | 当前下载的大小 | 下载完成后会变为0,即状态2的时候 | 是 |