*云端蓝牙*


*初始化*


Iot SDK初始化


初始化时添加的参数:

参数名类型说明备注必需
contextContextApp环境上下文可以在Application中传入是
appIdString应用Id是
appTokenString应用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初始化

请求参数:

参数名类型说明备注必需
contextContextApp环境上下文可以在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.**{*;}

*用户相关*


手机用户注册


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

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

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

例子:

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

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

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

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

验证码注册请求参数:

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

例子:

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

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

验证码注册返回参数:

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

邮箱用户注册

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

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

参数名类型说明备注必需
emailString邮箱地址是
ISDKCallbackfunction回调函数是

例子:

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

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

验证码返回参数:

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

注册请求参数:

参数名类型说明备注必需
emailString邮箱地址是
passwordString注册的账号密码是
codeString验证码是
ISDKCallbackfunction回调函数是

例子:

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

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

验证码注册返回参数:

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

手机用户登录

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

请求参数:

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

例子:

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

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

返回参数:

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

邮箱用户登录


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

请求参数:

参数名类型说明备注必需
emailString邮箱地址是
passwordString注册的账号密码是
ISDKCallbackfunction回调函数是

例子:

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

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

返回参数:

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

切换用户


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

*产品相关*


获取产品信息


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

请求参数:

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

例子:

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

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

返回参数:

参数名类型说明备注必需
errorMessageErrorMessage错误码参照错误码是
resultList<product>返回成功信息返回success或者需求数据是

result列表里的参数:

参数名类型说明备注必需
product_idString产品的id是
product_nameString产品名称是
productIconString产品的图标URL是
productSmallIconString产品的小图标URL是
productCategoryString产品的类别是
productKeyString产品的key是

*蓝牙相关*


是否支持低功耗蓝牙


IotBleSDK.getBleManager().isBleSupported();

打开关闭蓝牙


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

蓝牙是否打开


IotBleSDK.getBleManager().isBluetoothOpened();

蓝牙状态

监听蓝牙状态变化。

请求参数:

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

例子:

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

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

返回参数:

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

取消监听:

IotBleSDK.getBleManager().unRegisterBluetoothStatusListener(mBluetoothStateListener);

设备相关


扫描设备


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

请求参数:

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

例子:

使用默认扫描配置

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) {
    }
});

返回参数:

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

result参数

参数名类型说明备注必需
mMacString设备的Mac是
mNameString设备的名称是
mRssiint信号强度是
mScanRecordbyte[]广播数据是
mReconnectboolean是否重连蓝牙异常关闭开启后是
否自动重连。 默认值:false
是
mBleDeviceStatusBleDevceStatus设备状态是

mBleDeviceStatus参数

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

配置扫描参数,如下

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

searchConfig参数

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

停止扫描

IotBleSDK.getBleManager().stopSearch();

设备配对


监听设备配对状态变化。

请求参数:

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

例子:

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

返回参数:

参数名类型说明备注必需
errorMessageErrorMessage错误码参照错误码是
macString设备的mac是
bondStateint设备的绑定状态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()释放资源。

连接

连接蓝牙设备。

请求参数:

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

例子:

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

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

返回参数:

参数名类型说明备注必需
errorMessageErrorMessage错误码参照错误码是
codeint请求返回码参照返回码是
dataBleGattImpl服务包含服务、特征值等信息否

配置连接参数,如下:

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

connectConfig参数

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

连接状态


监听蓝牙设备连接状态。

请求参数:

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

例子:

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

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

返回参数:

参数名类型说明备注必需
error
Message
Error
Message
错误码参照错误码是
macString设备的macmac地址必须大写是
statusint设备的状态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();

返回参数:

参数名类型说明备注必需
statusint设备的状态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();

信号强度


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

请求参数:

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

例子:

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

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

返回参数:

参数名类型说明备注必需
errorMessageErrorMessage错误码参照错误码是
codeint请求返回码是
dataint信号强度值是

消息接收


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

透传二进制数据:
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升级的设备。

请求参数:

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

例子:

IotCloudSDK.getOTAManager().getAllOTAUpdateInfo(ICallback<List<OTAUpdateInfo>>(){
    @Override
    public void onSuccess(OTAUpdateInfo result) {
    }

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

返回参数:

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

result:

参数名类型说明备注必需
productIdint产品id是
nameStringOTA升级名称,管理平台上传ota升级包的时候可以填写是
mcuVersionString版本号要升级的版本是
mcuSizeValuelong包的大小包的大小,可以上传两个mcu是
mcuSize2Valuelong包的大小包的大小,可以上传两个mcu是
descriptionStringOTA升级描述是
iotIdString设备唯一id是
deviceMacString设备mac地址是
deviceNameString设备名称是

查询指定版本的bin包信息


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

请求参数:

参数名类型说明备注必需
productIdint包的大小是
iotIdString设备的iot_id是
owerint升级类型1:mcu升级,2:wifi升级,3:ble升级是
versionString版本号是
IOTADownloadCallbackFunction回调函数是

例子:

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) {
    }
});

返回参数:

参数名类型说明备注必需
erroeMessageErroeMessage错误码参照错误码是
totalint总大小是
progressint当前进度是
doneboolean是否已完成是

向设备发送OTA升级指令


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

请求参数:

参数名类型说明备注必需
ftotallenint包的大小是
versionString设备要升级的版本是
owerint升级类型1:mcu升级,2:wifi升级,3:ble升级是
IOTAUpgradeCallbackFunction回调函数是

例子:

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) {
}
 });

返回参数:

参数名类型说明备注必需
erroeMessageErroeMessage错误码参照错误码是
totalint总大小是
progressint当前进度是
doneboolean是否已完成是

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


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

请求参数:

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

例子:

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

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

返回参数:

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

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


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

请求参数:

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

例子:

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

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

返回参数:

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

查询指定版本升级进度


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

请求参数:

参数名类型说明备注必需
iotIdString设备唯一id是
mcuVersionString要升级的目标版本号是
ICallbackFunction回调函数是

例子:

IotCloudSDK.getOTAManager().getDeviceOTAProgress (iotId, mcuVersion, 
    new ICallback<OTAUpdateProgress>() {
    @Override
    public void onSuccess(OTAUpdateProgress result) {
    }

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

返回参数:

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

result:

参数名类型说明备注必需
statusint状态包含5种: 0未下载
可以向设备发送检查升级指令
1正在下载 2已下载
3更新完成 4更新失败
5正在升级
是
mcuSizeValuelong包的大小,可以上传两个mcu是
mcuSize2Valuelong包的大小,可以上传两个mcu是
iotIdString设备唯一id是
totalSizeValuelong总共大小下载完成后会变为0,即状态2的时候是
downloadSizeValuelong当前下载的大小下载完成后会变为0,即状态2的时候是

查询设备是否正在OTA升级

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

请求参数:

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

例子:

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

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

返回参数:

参数名类型说明备注必需
resultOTAUpgrading返回成功信息是
errorMessageErrorMessage错误码参照错误码是

result参数

参数名类型说明备注必需
ftotalLenthintOTA固件包大小是
progresslong已传输偏移量是
flaglongtrue: 正在升级 false: 未升级是