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调用时序图

OTA库API调用时序图
调用说明
  1. 初始化 BluetoothOTAManager 的实现类, 2.1   初始化OTA对象

  2. 配置OTA库的参数(BluetoothOTAManager#configure), 2.2   配置OTA参数

  3. 注册OTA库初始化状态的监听器(BluetoothOTAManager#registerBluetoothCallback), 3.4   蓝牙事件回调

  4. 透传 设备已连接 的连接状态(BluetoothOTAManager#onBtDeviceConnection), 2.1.3.1   传递设备连接状态

  5. 等待 初始化成功 的结果回调(BtEventCallback#onConnection)

  6. 查询 设备升级状态 (BluetoothOTAManager#queryMandatoryUpdate)

    1. 设备处于正常模式 , 执行 开始升级 (BluetoothOTAManager#startOTA)

    2. 设备处于强制升级模式

      1. 如果处于升级中,不需要额外处理,跳过;(BluetoothOTAManager#isOTA() == true)

      2. 如果不处于升级中,需要提升用户 “设备需要升级才能使用”, 执行 开始升级 (BluetoothOTAManager#startOTA)

  7. 等待 升级事件回调, 根据回调的事件进行UI显示。

    1. IUpgradeCallback#onStartOTA, OTA流程开始

    2. IUpgradeCallback#onProgress, OTA进度。注意: 0 — 下载资源; 1 — 更新固件

    3. IUpgradeCallback#onNeedReconnect, 通知进行设备回连。注意:SDK库默认处理设备回连,不需要额外处理。除非是自定义回连设备策略

    4. IUpgradeCallback#onStopOTA, OTA完成。设备会重启,需要 透传设备断开状态

    5. IUpgradeCallback#onCancelOTA, OTA被中止。注意:单备份OTA,不能被中止;双备份OTA,需要设备支持才能被主动取消。

    6. IUpgradeCallback#onError, OTA异常。根据 3.5   错误码 显示异常信息