# OTA说明

小微SDK提供可选的OTA功能,他是单独的so存在。但是我们强烈建议您选用该功能,因为OTA的so中还附带了设备网络监测功能,当某些资源无法播放、CDN无法访问,DNS解析出错等问题出现时,可以自动检测并上传日志,用于问题分析。

小微提供的OTA只负责资源的查询和下载,下载完毕后image的替换不由小微负责。在使用OTA前,需要前往小微官网硬件配置平台进行配置。配置完成后,在SDK端即可查询到此OTA信息,并选择下载。

# SDK OTA相关接口

# 初始化

要使用OTA功能,首先需要初始化OTA模块,即static native int deviceConfigOta()。然后设置查询和下载的回调,即public void setOtaListener(String url,OtaListener listener)。若是ota下载url传空值,若url不是空值,可以用来配合otaDwonload下载其他资源。

# 查询OTA

初始化完成后,可以使用查询接口int queryOtaUpdate(String businessID, int channel, int otaType, int debugFlag)来查询OTA信息。查询结果通过OtaListener.onOtaCheckResult(...)返回,一次只能查询一个OTA信息。在上一次OTA查询结束前再次调用该接口,上次查询自动终止。

  • businessID 业务号,通常填写nullptr即可,除非有特殊定制。
  • channel 业务通道,通过官网配置的OTA,channel为1
  • otaType ota升级类型 1,即软件升级 3,硬件升级
  • debugFlag 测试标记,在正式OTA前可以进行测试,1为正式模式,在官网配置的测试OTA中对应flag为2。

# 查询结果

void onOtaCheckResult(int errCode, String businessID, boolean newVersion, DeviceOTAInfo otaInfo);

errCode不为0时,businessID对应查询时的businessIDnewVersion为true时代表有新版本,此时后面两个参数有意义,否则是nullptr。在otaInfo描述了OTA版本信息。请参考DeviceOTAInfo.java文件中的说明。

# 下载

查询到下载信息后,可通过int otaDwonload(String url, String downloadPath, int hashType, String hashValue)接口来进行下载,并在OtaListener的回调中获得下载状态。这个函数其实不光可以用于查询到的OTA包下载,也可用于任何其他http资源的下载。

此接口不支持断点续传,需要一次性下载完毕。

# 取消下载

通过int stopOtaDownload(String url)来取消下载,空的url将取消所有下载。这个接口不会自动清理已下载的内容和下载到一半的内容。

# 其它

  1. 在官网配置OTA时有“版本介绍”和“透传给客户端”字段,分别对应OTA查询结果的updateTipsextraInfo
  2. 只有设备端自身版本符合官网上的配置时,才能查询到OTA信息,设备端自身版本为设备在login的时候填写的DeviceLoginInfo.productVersion