1 接入流程
1.1 概述
本文档是为了方便后续项目维护和管理、记录开发内容而创建。本文档描述的OTA库是基于杰理的RCSP协议而实现。同时使用于单双备份的OTA流程。
1.2 导入说明
1.2.1 依赖库
Warning
xxx
为版本号,请以最新发布版本为准
jl_bt_ota_Vxxx-release.aar : OTA流程封装
1.2.2 导入库
//1.将1.2.1的aar文件放入工程目录中的对应moudle的lib文件夹下
//2.在moudlu的build.gradle中添加
implementation fileTree(include: ['*.aar'], dir: 'libs')
1.2.3 权限清单
在 AndroidManifest.xml
文件中申请以下权限
<!-- 申请蓝牙权限-->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<!-- 申请位置权限,Android 6.0+需要位置权限才能搜索设备-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 申请存储权限,保存log文件-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 申请蓝牙扫描权限, Android 12+需要蓝牙扫描权限才可以扫描蓝牙设备-->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
<!-- 申请蓝牙连接权限, Android 12+需要蓝牙连接权限才可以操作蓝牙设备-->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
1.3 OTA库API调用时序图

初始化
BluetoothOTAManager
的实现类, 2.1 初始化OTA对象配置OTA库的参数(BluetoothOTAManager#configure), 2.2 配置OTA参数
注册OTA库初始化状态的监听器(BluetoothOTAManager#registerBluetoothCallback), 3.4 蓝牙事件回调
透传
设备已连接
的连接状态(BluetoothOTAManager#onBtDeviceConnection), 2.1.3.1 传递设备连接状态等待
初始化成功
的结果回调(BtEventCallback#onConnection)查询
设备升级状态
(BluetoothOTAManager#queryMandatoryUpdate)若
设备处于正常模式
, 执行开始升级
(BluetoothOTAManager#startOTA)若
设备处于强制升级模式
如果处于升级中,不需要额外处理,跳过;(BluetoothOTAManager#isOTA() == true)
如果不处于升级中,需要提升用户 “设备需要升级才能使用”, 执行
开始升级
(BluetoothOTAManager#startOTA)
等待
升级事件回调
, 根据回调的事件进行UI显示。IUpgradeCallback#onStartOTA
, OTA流程开始IUpgradeCallback#onProgress
, OTA进度。注意: 0 — 下载资源; 1 — 更新固件IUpgradeCallback#onNeedReconnect
, 通知进行设备回连。注意:SDK库默认处理设备回连,不需要额外处理。除非是自定义回连设备策略IUpgradeCallback#onStopOTA
, OTA完成。设备会重启,需要透传设备断开状态
IUpgradeCallback#onCancelOTA
, OTA被中止。注意:单备份OTA,不能被中止;双备份OTA,需要设备支持才能被主动取消。IUpgradeCallback#onError
, OTA异常。根据 3.5 错误码 显示异常信息