本文深入分析 Android 蓝牙系统中获取本地设备 IO 能力(用于配对交互)的完整流程。该流程从上层接口调用开始,经过属性管理、配置读取、类型转换、范围校验等多个步骤,最终从持久化存储中获取预设的 IO 能力值(如 DisplayYesNo)。整个流程涉及 6 个核心模块的协作,通过分层设计和安全校验确保配置读写的可靠性。
一、概述
蓝牙本地 IO 能力(如BTM_IO_CAP_IO
,对应 “显示并确认” 能力)是设备在简单配对过程中决定认证方式的关键参数。其获取流程涉及蓝牙协议栈多个模块的协同,从上层应用接口到底层存储访问形成完整链路,核心目标是从持久化配置中读取有效配置值,若配置缺失则返回编译时默认值。
该流程的核心模块及功能如下:
-
上层接口:
btif_storage_get_local_io_caps
作为对外接口,触发 IO 能力获取流程。 -
中间层适配:
btif_storage_get_io_cap_property
封装属性获取逻辑,通过btif_storage_get_adapter_property