设备OTA开发
一. 设置OTA初始化方式
在connect之前,设置OTA初始化状态
/**
* SDK启动时是否启动ota服务
*
* @param isStart true会启动, 默认为true
* @param isDownload true会自动下载,默认会true
*/
public void XIotMqttClient.getInstance().setOTAInitOnStart(boolean isStart, boolean isDownload)
二.设置版本号
在connect之前,设置当前固件版本,sdk在connect成功后,直接将版本号上传至服务。
/**
* 设置当前固件版本
*
* @param version 版本号
*/
public void XIotMqttClient.getInstance().setFirmwareVer(String version)
三.接收固件更新信息
sdk在设置OTA启用并且默认下载后,连接服务时会上报版本信息,此时服务端会判断,如果有待升级版本,则下发致客户端,客户端通过onFireWareDownloaded回调接口进行监听。 继承XIotTopicCallback接口,实现onFirmWareDownloaded
/**
* 固件版本下载监听
* @param errCode 错误码,取值范围{0,-1},0表示成功,-1表示失败
* @param firmwareInfo 在错误码为0时,下载固件的本机位置;错误码为-1 时,具体错误信息
*/
void XIotTopicCallback.onFirmWareDownloaded(int errCode, String firmwareInfo)
四.下载固件进度
sdk在下载固件时,会回调下载进度。
/**
* 下载固件进度
* @param progress 下载进度
* @param total 文件总大小
*/
void XIotTopicCallback.onFirmWareDownloading(double progress, long total)
五.主动下载模式下的下载提示接口
在sdk选择启用OTA并不默认下载固件时,该接口会生效。在有固件升级时,会返回固件MD5等信息,提示有升级。
/**
* 主动下载模式下的下载提示接口
* @param firmwareName
* @param version 固件版本
* @param firmwareMD5 固件md5
* @param size
* @param firmwareInfo 固件信息
*/
void XIotTopicCallback.onFirmWareReadyToDownload(String firmwareName,String version,String firmwareMD5,long size,String firmwareInfo)
六.更新固件安装状态
在sdk选择启用OTA并不默认下载固件时,使用此函数主动下载固件
/**
* 固件下载。 在调用{@link XIotMqttClient#initOTA}设置isDownload=false时,
* 可在{@link XIotTopicCallback#onFirmWareReadyToDownload(String, String, String,long, String)}调用此函数下载固件
* @param md5 {@link XIotTopicCallback#onFirmWareReadyToDownload(String, String, String,long, String)} 第二个参数返回的md5
*/
public void firmWareToDownload(String md5)