云端蓝牙


初始化


Iot SDK初始化


初始化时添加的参数:

参数名 类型 说明 备注 必需
context Context App环境上下文 可以在Application中传入 是
appId String 应用Id 是
appToken String 应用Token 是

例子:

在Application onCreate方法中调用以下初始化方法(仅限主进程) 

// 判断该当前进程的包名是否一致(主进程)
if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext()))) {
           /**
        * 初始化SDK
        */
IotCloudSDK.init(Context context, String appId, String appToken);

// 初始化并且关联极光推送,目前使用极光推送,配合云端设置可以实现
// 事件的告警、消息通知等等
// 不需要App外推送的时候请不要调用此方法
// 注意调用此初始化方法时需要导入极光推送的相关SDK和so动态链接库
// 设备控制,命令发送等等和设备交互的功能和极光推送无关
// IotCloudSDK.initWithPush(Context context, String appId, String appToken);
IotCloudSDK.setNeedLoginListener(new IneedLoginListener() {
            @Override
            public void onNeedLogin(Context context) {
                try {
                      // 目的是为了清空任务栈中的其他页面,强制用户登录
                    Intent intent = new Intent(context, 登录页面.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
                } catch (Exception e) {
                    Intent intent = new Intent(context, 登录页面.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                }
            }
        });
}
// 获取当前进程包名
public static String getCurProcessName(Context context) {

        int pid = android.os.Process.myPid();

        ActivityManager activityManager = (ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE);

        for (ActivityManager.RunningAppProcessInfo appProcess : activityManager
                .getRunningAppProcesses()) {

            if (appProcess.pid == pid) {
                return appProcess.processName;
            }
        }
        return null;
}

Ble SDK初始化

请求参数:

参数名 类型 说明 备注 必需
context Context App环境上下文 可以在Application中传入 是

例子:

在Application onCreate方法中调用一下初始化方法
IotBleSDK.init(Context context);

// 登陆官网账户资料里的用户token和用户id
IotBleSDK.getInstance().initCompanyInfo(String companyId,String companyKey);

//注册时返回的用户id、用户token
IotBleSDK.getInstance().initUserInfo(int userId, String userToken);

Iot SDK混淆配置文件


-dontwarn com.iot.cloud.**
-keep class com.iot.cloud.**{ *;}
-dontwarn com.d.c.b.a.**
-keep class com.d.c.b.a.**{ *;}
-dontwarn io.fogcloud.easylink.**
-keep class io.fogcloud.easylink.**{*;}
-keep class javax.jmdns.**{*;}
-dontwarn javax.jmdns.**
-keep class javax.servlet.**{*;}
-dontwarn javax.servlet.**
-keep class org.eclipse.jetty.**{*;}
-dontwarn org.eclipse.jetty.**
-keep class org.slf4j.**{*;}
-dontwarn org.slf4j.**
-dontwarn com.hiflying.**
-keep class com.hiflying.**{*;}
-dontwarn com.longthink.api.**
-keep class com.longthink.api.**{*;}
-dontwarn mediatek.android.IoTManager.**
-keep class mediatek.android.IoTManager.** { *;} 
-dontwarn com.google.gson.**
-keep class com.google.gson.**{*;}
-dontwarn org.eclipse.paho.client.mqttv3.**
-keep class org.eclipse.paho.client.mqttv3.**{*;}

Ble SDK混淆配置文件


-downwarn com.iot.ble.**
-keep class com.iot.ble.**{*;}
#rxjava/rxandroid
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
}

#okhttp3
-dontwarn okhttp3.**
-dontwarn okio.**
-keep class okhttp3.** { *;}
-keep class okio.** { *;}

#retrofit
-dontwarn retrofit2.**
-keep class retrofit2.** { *;}
#Gson
-downwarn com.google.gson.**
-keep class com.google.gson.**{*;}

用户相关


手机用户注册


用户注册需要分两步,第一步是发送验证码到手机;第二步是使用验证码注册。

发送验证码到手机请求参数:

参数名 类型 说明 备注 必需
phone String 手机号码 接收验证码的手机号 是
zone String 区号 传入”0086” 可以使用Zone.CN
Zone是SDK中的一个类 目前只支持中国大陆
是
ISDKCallback function 回调函数 是

例子:

IotCloudSDK.getUserManager().getRegisterSMSCode(phone, zone, new ISDKCallback() {
@Override
public void onSucess() {
}

@Override
public void onError(ErrorMessage errorMessage) {
}
});

发送验证码到手机返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误信息 参照错误码 是

验证码注册请求参数:

参数名 类型 说明 备注 必需
phone String 手机号码 接收验证码的手机号 是
password String 注册的账号密码 是
smsCode String 手机接收到的验证码 是
zone String 区号 传入”0086” 可以使用Zone.CN
Zone是SDK中的一个类 目前只支持中国大陆
是
ISDKCallback function 回调函数 是

例子:

IotCloudSDK.getUserManager().userRegister(phone, password, smsCode, zone
    new ISDKCallback() {
    @Override
    public void onSucess() {
    // 可以进入其他页面使用SDK了
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

验证码注册返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

邮箱用户注册

邮箱用户注册,需要先获取邮箱验证码,然后使用验证码注册。

获取邮箱验证码请求参数:

参数名 类型 说明 备注 必需
email String 邮箱地址 是
ISDKCallback function 回调函数 是

例子:

IotCloudSDK.getUserManager().getRegisterEmailCode(email, 
new ISDKCallback() {
@Override
public void onSucess() {
}

@Override
public void onError(ErrorMessage errorMessage) {
}
});

验证码返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

注册请求参数:

参数名 类型 说明 备注 必需
email String 邮箱地址 是
password String 注册的账号密码 是
code String 验证码 是
ISDKCallback function 回调函数 是

例子:

IotCloudSDK.getUserManager().registerEmail(email, password, code,
new ISDKCallback() {
@Override
public void onSucess() {
// 可以进入其他页面使用SDK了
}

@Override
public void onError(ErrorMessage errorMessage) {
}
});

验证码注册返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

手机用户登录

使用手机号与密码进行登录。

请求参数:

参数名 类型 说明 备注 必需
phone String 手机号码 接收验证码的手机号 是
password String 注册的账号密码 是
zone String 区号 传入”0086” 可以使用Zone.CN
Zone是SDK中的一个类 目前只支持中国大陆
是
ISDKCallback function 回调函数 是

例子:

例子:
IotCloudSDK.getUserManager().userLogin(phone, password, zone, new ISDKCallback() {
@Override
public void onSucess() {
// 可以调用其他接口使用SDK了
}

@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

邮箱用户登录


使用邮箱与密码进行登录。

请求参数:

参数名 类型 说明 备注 必需
email String 邮箱地址 是
password String 注册的账号密码 是
ISDKCallback function 回调函数 是

例子:

IotCloudSDK.getUserManager().emailLogin(email, password, new ISDKCallback() {
@Override
public void onSucess() {
// 可以调用其他接口使用SDK了
}

@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

切换用户


调用IotCloudSDK.logout();在IOT SDK登录状态介绍的方法处理新用户的登录注册等。

产品相关


获取产品信息


通过调用该接口获取所有产品信息。

请求参数:

参数名 类型 说明 备注 必需
ISDKCallback function 回调函数 是

例子:

IotCloudSDK.getDeviceManager().getProductList(
new ISDKCallback<List<Product>>() {
@Override
public void onSucess(List<Product> result) {
}

@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是
result List 返回成功信息 返回success或者需求数据 是

result列表里的参数:

参数名 类型 说明 备注 必需
product_id String 产品的id 是
product_name String 产品名称 是
productIcon String 产品的图标URL 是
productSmallIcon String 产品的小图标URL 是
productCategory String 产品的类别 是
productKey String 产品的key 是

蓝牙相关


是否支持低功耗蓝牙


IotBleSDK.getBleManager().isBleSupported();

打开关闭蓝牙


IotBleSDK.getBleManager().openBluetooth();
IotBleSDK.getBleManager().closeBluetooth();

蓝牙是否打开


IotBleSDK.getBleManager().isBluetoothOpened();

蓝牙状态

监听蓝牙状态变化。

请求参数:

参数名 类型 说明 备注 必需
BluetoothStateListener Function 回调函数 是

例子:

IotBleSDK.getBleManager().setBluetoothStatusListener(new BluetoothStateListener(){
    @Override
    public void onBluetoothStateChanged(boolean openOrClosed) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
);

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是
openOrClosed boolean 蓝牙是否打开 true:打开false:关闭 是

取消监听:

IotBleSDK.getBleManager().unRegisterBluetoothStatusListener(mBluetoothStateListener);

设备相关


扫描设备


扫描所有低功耗蓝牙设备。

请求参数:

参数名 类型 说明 备注 必需
BleSearchCallback function 回调函数 是

例子:

使用默认扫描配置

IotBleSDK.getBleManager().searchBle(new BleSearchCallback(){
    @Override
    public void onSearchStarted(){
    }

    @Override
    public void onDeviceFounded(BleDeviceBean bleDeviceBean){
    }

    @Override
    public void onSearchStopped() {
    }

    @Override
    public void onSearchCanceled() {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
erroeMessage ErroeMessage 错误码 参照错误码 是
result BleDeviceImpl 返回成功信息 需求数据 是

result参数

参数名 类型 说明 备注 必需
mMac String 设备的Mac 是
mName String 设备的名称 是
mRssi int 信号强度 是
mScanRecord byte[] 广播数据 是
mReconnect boolean 是否重连 蓝牙异常关闭开启后是
否自动重连。 默认值:false
是
mBleDeviceStatus BleDevceStatus 设备状态 是

mBleDeviceStatus参数

参数名 类型 说明 备注 必需
status int 蓝牙设备状态 Constants. STATUS_UNKNOWNConstants.
BLE_STATUS_CONNECTEDConstants.
BLE_STATUS_CONNECTINGConstants.
BLE_STATUS_DISC ONNECTINGConstants.
BLE_STATUS_DISCONNECTED
是

配置扫描参数,如下

IotBleSDK.getBleManager().initSearchConfig(BleSearchConfig searchConfig);

searchConfig参数

参数名 类型 说明 备注 必需
mTimeOut int 超时时长(单位:ms) 默认值:5000ms 是
mTimes int 超时次数 默认值:2 是

停止扫描

IotBleSDK.getBleManager().stopSearch();

设备配对


监听设备配对状态变化。

请求参数:

参数名 类型 说明 备注 必需
BluetoothBondListener Function 回调函数 是

例子:

IotBleSDK.getBleManager().setBluetoothBondListener(new BluetoothBondListener(){
    @Override
    public void onBondStateChanged(String mac, int bondState) {
    }
    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是
mac String 设备的mac 是
bondState int 设备的绑定状态 Constants.BOND_NONEConstants.
BOND_BONDINGConstants.
BOND_BONDED
是

取消监听:

IotBleSDK.getBleManager().unRegisterBluetoothBondListener(mBluetoothBondListener);

获取已连接设备列表


List< BleDevice > list = IotBleSDK.getBleManager().getAllConnectedDevice();

设备通信


一般使用IotBleDevice类,通过以下方法获得对象:

IotCloudBleDeviceImpl iotBleDevice = IotCloudBleDeviceFactory.getIotCloudBleDevice(
BleDevice bleDevice, Product product);
// 通过BleDeviceFactory. getBleDevice(BleDeviceBean bleDeviceBean)初始化

可以使用iotBleDevice.releaseBleDevice ()与BleDevice取消关联;使用iotBleDevice. onDestroy()释放资源。

连接

连接蓝牙设备。

请求参数:

参数名 类型 说明 备注 必需
BleConnectCallback Function 回调函数 是

例子:

使用默认连接配置
iotBleDevice.connect(new BleConnectCallback() {
    @Override
    public void onResponse(int code, BleGattImpl data) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是
code int 请求返回码 参照返回码 是
data BleGattImpl 服务 包含服务、特征值等信息 否

配置连接参数,如下:

IotBleSDK.getBleManager().initBleConnectConfig(BleConnectConfig connectConfig);

connectConfig参数

参数名 类型 说明 备注 必需
connectTimeout int 超时时长(单位:ms) 默认值:10*1000ms 否
opeartTimeout int 操作超时时长(单位:ms) 默认值:15*1000ms 否

连接状态


监听蓝牙设备连接状态。

请求参数:

参数名 类型 说明 备注 必需
BleConnectStatusListener Function 回调函数 是

例子:

iotBleDevice.setBleConnectStatusListener(new BleConnectStatusListener() {
    @Override
    public void onConnectStatusChanged(String mac, int status) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
error
Message
Error
Message
错误码 参照错误码 是
mac String 设备的mac mac地址必须大写 是
status int 设备的状态 Constants. STATUS_UNKNOWN
Constants. BLE_STATUS_CONNECTED
Constants. BLE_STATUS_CONNECTING
Constants. BLE_STATUS_DISCONNECTING
Constants. BLE_STATUS_DISCONNECTED
Constants.BLE_STATUS_CONNECT_FAIL
Constants.BLE_STATUS_RECONNECT_SUCCESS
Constants.BLE_STATUS_RECONNECT_FAIL
Constants. BLE_STATUS_REGI_SUCCESS
Constants.BLE_STATUS_REGI_FAIL
Constants.BLE_STATUS_SESSIONKEY_VALID
Constants.BLE_STATUS_SESSIONKEY_FAIL
Constants.Ble_STATUS_DEVICE_RESET_SUCCESS
Constants.Ble_STATUS_DEVICE_RESET_FAIL
Constants.Ble_STATUS_DEVICE_REGI_SUCCESS
Constants.Ble_STATUS_DEVICE_REGI_FAIL
Constants.Ble_STATUS_DEVICE_BIND_SUCCESS
Constants.Ble_STATUS_DEVICE_BIND_FAIL
是

断开连接


断开指定的蓝牙设备连接,不释放资源。

iotBleDevice.disconnect();

断开所有的蓝牙设备连接,不是释放资源。

IotBleSDK.getBleManager().disconnect();

设备状态


获取蓝牙设备状态。

例子:

int status = iotBleDevice.getIotBleStatus();

返回参数:

参数名 类型 说明 备注 必需
status int 设备的状态 Constants. STATUS_UNKNOWN
Constants. BLE_STATUS_CONNECTED
Constants. BLE_STATUS_CONNECTING
Constants. BLE_STATUS_DISCONNECTING
Constants. BLE_STATUS_DISCONNECTED
Constants.BLE_STATUS_CONNECT_FAIL
Constants.BLE_STATUS_RECONNECT_SUCCESS
Constants.BLE_STATUS_RECONNECT_FAIL
Constants. BLE_STATUS_REGI_SUCCESS
Constants.BLE_STATUS_REGI_FAIL
Constants.BLE_STATUS_SESSIONKEY_VALID
Constants.BLE_STATUS_SESSIONKEY_FAIL
Constants.Ble_STATUS_DEVICE_RESET_SUCCESS
Constants.Ble_STATUS_DEVICE_RESET_FAIL
Constants.Ble_STATUS_DEVICE_REGI_SUCCESS
Constants.Ble_STATUS_DEVICE_REGI_FAIL
Constants.Ble_STATUS_DEVICE_BIND_SUCCESS
Constants.Ble_STATUS_DEVICE_BIND_FAIL
是

自动重连


蓝牙设备异常关闭是否自动重连,出现异常会尝试一直连接。

iotBleDevice.setReconnected(boolean reConnected);
// 是否满足重连条件
boolean reconnect = iotBleDevice. isReconnectionCondition();

信号强度


获取蓝牙设备的信号强度。

请求参数:

参数名 类型 说明 备注 必需
BleReadRssiCallback Function 函数 是

例子:

iotBleDevice.readRssi(new BleReadRssiCallback() {
    @Override
    public void onResponse(int code, Integer data) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是
code int 请求返回码 是
data int 信号强度值 是

消息接收


手机端接收蓝牙设备发送的消息。

透传二进制数据:
iotBleDevice.setPushListener(new IIotBleDeviceImpl.PushListener() {
    @Override
    public void onPush(byte[] values) {
    }
});

设备功能点更新消息:
iotBleDevice.setCommandListener(new IIotBleDeviceImpl.CommandListener() {
    @Override
    public void onCommand(List<MessageData> list) {
    }
});

设备解绑信息:
iotBleDevice.setUnbindListener(new IIotBleDeviceImpl.UnbindDeviceListener() {
    @Override
    public void onUnbind() {
    }
});

设备错误信息:
iotBleDevice.setErrorListener(new IIotBleDevice.ErrorListener() {
    Override
    public void onError(IotBleMessage iotBleMessage) {
        // 设备的错误信息
        iotBleMessage.getErrorMessage();
    }
});

透传(push)信息到设备


手机端向蓝牙设备发送信息。

iotBleDevice.push(byte[]array);

下发常规命令


手机端下发命令控制设备。

构造设备功能点数据
MessageData.Builder builder = new MessageData.Builder();
builder.put(key,value);
iotBleDevice.sendCommand(builder, new ICallback() {
@Override
public void onSuccess(Object result) {
}

@Override
public void onError(ErrorMessage errorMessage) {
}
})

发送解绑信息


手机端发送解绑蓝牙设备信息,收到回复立即断开连接。

iotBleDevice.unbindBleDevice(new ICallback() {
    @Override
    public void onSuccess(Object result) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

查询可以OTA升级的设备


查询可以进行OTA升级的设备。

请求参数:

参数名 类型 说明 备注 必需
ICallback Function 回调函数 是

例子:

IotCloudSDK.getOTAManager().getAllOTAUpdateInfo(ICallback<List<OTAUpdateInfo>>(){
    @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 设备名称 是

查询指定版本的bin包信息


查询指定版本的bin信息并下载保存。

请求参数:

参数名 类型 说明 备注 必需
productId int 包的大小 是
iotId String 设备的iot_id 是
ower int 升级类型 1:mcu升级,2:wifi升级,3:ble升级 是
version String 版本号 是
IOTADownloadCallback Function 回调函数 是

例子:

IotBleSDK.getBleManager().downloadDeviceOTAMCU(productId, iotId, owner, version,
    new IOTADownloadCallback() {
    @Override
    public void startDownload() {
    }

    @Override
    public void onProgress(long total, long progress, boolean down) {
    }

    @Override
    public void onSuccess(Object object) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
erroeMessage ErroeMessage 错误码 参照错误码 是
total int 总大小 是
progress int 当前进度 是
done boolean 是否已完成 是

向设备发送OTA升级指令


发送开始升级指令,向设备端传输OTA升级包。

请求参数:

参数名 类型 说明 备注 必需
ftotallen int 包的大小 是
version String 设备要升级的版本 是
ower int 升级类型 1:mcu升级,2:wifi升级,3:ble升级 是
IOTAUpgradeCallback Function 回调函数 是

例子:

iotBleDevice.requestOTAUpgrade(ftotallen,version,owner, new IOTAUpgradeCallback() {
@Override
public void startOTAUpgrade() {
}

@Override
public void progressOTAUpgrade(int total, int progress, boolean done) {
}

@Override
public void onError(ErrorMessage errorMessage) {
}
 });

返回参数:

参数名 类型 说明 备注 必需
erroeMessage ErroeMessage 错误码 参照错误码 是
total int 总大小 是
progress int 当前进度 是
done boolean 是否已完成 是

向设备发送异常终止OTA传输


OTA升级过程中可以向设备发送取消OTA传输命令。

请求参数:

参数名 类型 说明 备注 必需
owner int 升级类型 1:mcu升级,2:wifi升级,3:ble升级 是
ICallback Function 回调函数

例子:

iotBleDevice. cancalOTAUpgrade (owner,new ICallback() {
    @Override
    public void onSuccess(Object object) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

向设备发送执行OTA升级指令


OTA包全部传输到设备后需要重启设备,设备端才能进行OTA升级

请求参数:

参数名 类型 说明 备注 必需
owner int 升级类型 1:mcu升级,2:wifi升级,3:ble升级 是
mcuVersion String 升级的mcu版本号 是
timeout long 设备重启超时时间 设备重启进行OTA升级需要时间,超出时间范围未回调表示超时,建议时间设置大些。 默认(小于等于0):20*1000ms。 单位:ms
ICallback Function 回调函数

例子:

iotBleDevice. confirmOTAUpgrade (owner, mcuVersion ,timeout,new ICallback() {
    @Override
    public void onSuccess(Object object) {
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码 是

查询指定版本升级进度


获取设备的升级状态和升级进度。

请求参数:

参数名 类型 说明 备注 必需
iotId String 设备唯一id 是
mcuVersion String 要升级的目标版本号 是
ICallback Function 回调函数 是

例子:

IotCloudSDK.getOTAManager().getDeviceOTAProgress (iotId, mcuVersion, 
    new ICallback<OTAUpdateProgress>() {
    @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的时候 是

查询设备是否正在OTA升级

查询设备是否正在进行OTA文件传输,正在传输则返回文件大小和偏移量。

请求参数:

参数名 类型 说明 备注 必需
ICallback Function 回调函数

例子:

iotBleDevice. requestOTAUpgrading (new ICallback() {
    @Override
public void onSuccess(OTAUpgrading upgrading) {
    if(null == upgrading || !upgrading.flag){
    // 未升级
}else{
    // 正在升级 
}
    }

    @Override
    public void onError(ErrorMessage errorMessage) {
    }
});

返回参数:

参数名 类型 说明 备注 必需
result OTAUpgrading 返回成功信息 是
errorMessage ErrorMessage 错误码 参照错误码 是

result参数

参数名 类型 说明 备注 必需
ftotalLenth int OTA固件包大小 是
progress long 已传输偏移量 是
flag long true: 正在升级 false: 未升级 是
Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""