总览

1. 概述

  • 功能定位:实现手机与手表的交互,支持 OTA 升级、资源传输等核心功能

  • 平台支持:iOS、Android 双平台适配

  • 文档结构:包含iOS、Android、错误码体系三部分

2. iOS平台的OTA

  • 核心作用:iOS 平台 OTA SDK 的集成与使用指南

  • 集成步骤

    • 导入框架SifliOCore.xcframeworkSifliOtaSDK.xcframework

    • 初始化:通过SFOtaV3Manager.shared()获取实例,设置delegate实现回调

  • 接口调用

    • 资源传输startOtaResWithIdentifier方法,支持表盘、多语言包等 14 种资源类型(SFOtaV3Type枚举),需构建SFOtaV3ResourceFileInfo描述文件信息(含字节对齐配置)

    • 固件传输startOtaFirmwareWithIdentifier方法,支持 Hcpu、Lcpu 等 11 种固件类型(SFOtaV3ImageID枚举),需传入SFOtaV3BinFileInfo列表(含 imageId 和偏移地址)

3. Android平台的OTA

  • 核心作用:Android 平台 OTA SDK 的集成与使用指南

  • 集成步骤

    • Gradle 配置:添加阿里云 Maven 仓库地址及认证信息

    • 依赖引入:siflicore:1.1.7、sifliotasdk:2.0.8

    • 初始化:通过SFOtaV3Manager.getInstance()获取实例,调用init方法并设置回调

  • 接口调用

    • 资源传输startOtaV3方法,支持与 iOS 对应的资源类型,通过OtaV3ResourceFileInfo配置文件类型、路径及字节对齐属性

    • 固件传输startOtaV3重载方法,需传入OtaV3BinFileInfo列表(含 imageId 和十六进制偏移地址)

4. 错误码

  • 核心作用:定义全平台错误码体系及处理方案

  • 主要内容

    • iOS SDK 错误码(1-340):涵盖蓝牙状态异常、文件操作失败、固件响应错误等,如SFOtaV3ErrorTypeFailToUnzip(解压失败)

    • Android SDK 错误码(2-520):包含蓝牙连接问题、缓存目录创建失败、ctrl 文件校验错误等,如V3_PUSH_FILE_NOT_EXIST(文件不存在)

    • 固件端错误码(1-89):分为固件 OTA 相关(如空间不足、校验失败)和文件传输相关(如 CRC 校验失败、低电拒绝),提供具体场景及处理建议(如重试、检查文件格式、反馈原厂等)