bluetooth

奔跑吧 android19 天前
ble·bluetooth·aosp13·br/edr·hci_event·le_meta_event
【android bluetooth 协议分析 01】【HCI 层介绍 30】【hci_event和le_meta_event如何上报到btu层】在蓝牙协议栈中,HCI Event 和 LE Meta Event 是控制器(Controller)向主机(Host)报告事件的两种形式,它们属于 HCI(Host Controller Interface)层。这是主机和控制器之间通信的标准接口。 那你清楚 这些 事件是怎么一层层上报到 协议栈, 协议栈有是如何去处理的吗?
Molesidy21 天前
bluetooth·蓝牙通信协议
【Bluetooth】【基础篇】第二章 关于蓝牙协议栈架构与其硬件方案架构大致概述蓝牙协议包含两种核心技术:Basic Rate(BR,基本速率)和 Low Energy(LE,低功耗)。两者虽均具备搜索管理、连接管理等基础机制,但技术体系相互独立、无法直接互通。若设备厂商仅实现其中一种技术,该设备只能与同样支持该技术的设备通信;若需确保与所有蓝牙设备兼容,则必须同时集成两种技术,无论实际应用是否需要。
Molesidy21 天前
bluetooth·uart h4
【Bluetooth】【Transport层篇】第四章 基于基础UART的蓝牙硬件发送协议 UART H4 Transport详解蓝牙 Transport 是主机(Host,蓝牙协议栈)与控制器(Controller,蓝牙芯片)之间的硬件层通信协议,负责承载 HCI(Host Controller Interface)数据。
奔跑吧 android1 个月前
android·bluetooth·aosp15·bt·gd·sdp_init
【android bluetooth 协议分析 07】【SDP详解 2】【SDP 初始化】上节内容 我已经向大家仔细介绍了 sdp 的协议细节:【android bluetooth 协议分析 07】【SDP详解 1】【SDP 介绍】不太清楚的同学可以点击查阅。
奔跑吧 android2 个月前
sdp·properties·bluetooth·connect·aosp13·bond·startdiscovery
【android bluetooth 框架分析 04】【bt-framework 层详解 8】【DeviceProperties介绍】前面我们提到了 蓝牙协议栈中的 Properties , 这篇文章是 他的补充。在 Android 蓝牙实际使用中,系统需反复处理设备的发现、服务解析、配对、连接等场景。在这些过程中,远程设备的信息管理混乱、数据缺失、不一致是普遍存在的问题。
奔跑吧 android2 个月前
android·framework·bluetooth·bt·gd·aosp13
【android bluetooth 框架分析 04】【bt-framework 层详解 5】【AbstractionLayer介绍】我们在阅读 native 和 java 层 蓝牙服务代码时,会发现很多 AbstractionLayer.xxxxx 的字段。 这些字段 虽然很容易理解是干什么的。 但是 大家有没有考虑过, 为啥要专门定义一个类来存放他们。 这样设计的意义是什么?
奔跑吧 android3 个月前
android·bluetooth·bt·aosp13
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相关的系统属性(System Properties)。这些属性以结构化的方式定义,并由 sysprop 编译工具自动生成访问接口,供 Framework、HAL 或其他模块使用。
奔跑吧 android3 个月前
android·bluetooth·carplay·bt·gd·aosp13
【android bluetooth 案例分析 04】【Carplay 详解 3】【Carplay 连接之车机主动连手机】在前面的文章中,我们已经介绍了 carplay 在车机中的角色划分, 并实际分析了 手机主动连接车机的案例。 感兴趣可以 查看如下文章介绍。 【android bluetooth 案例分析 04】【Carplay 详解 1】【CarPlay 在车机侧的蓝牙通信原理与角色划分详解】 【android bluetooth 案例分析 04】【Carplay 详解 2】【Carplay 连接之手机主动连车机】
奔跑吧 android3 个月前
android·bluetooth·carplay·bt·aosp13
【android bluetooth 案例分析 04】【Carplay 详解 2】【Carplay 连接之手机主动连车机】在【android bluetooth 案例分析 04】【Carplay 详解 1】【CarPlay 在车机侧的蓝牙通信原理与角色划分详解】中我们从整理上介绍了车机中 carplay 相关基础概念。 本节 将详细分析 iphone手机主动 连接 车机carplay 这一过程。
MADAO_luv3 个月前
android-studio·低功耗蓝牙·bluetooth
Android Studio里的BLE数据接收策略#本人是初次接触Android蓝牙开发,若有不对地方,欢迎指出。#由于是讲接收数据策略(其中还包含数据发送的部分策略),因此其他问题部分不会讲述,只描述数据接收。
奔跑吧 android3 个月前
android·bluetooth·qcom·bt_hal_1.0·qcom_bt·高通蓝牙hal
【android bluetooth 协议分析 02】【bluetooth hal 层详解 3】【高通蓝牙hal主要流程介绍-上】本节主要讨论 高通 蓝牙 hal 中,的一些流程。 看看你是否都清楚如下问题:如果你已经对上述讨论的问题,已经很清楚了,那你无需阅读该文章,请自行忽略。当然,也可以给笨叔挑挑错。 欢迎评论,一起探讨,毕竟都是笨叔自己的理解,难免有点出入,我也想进步!!!
奔跑吧 android3 个月前
android·bluetooth·bt·aosp13·hcicmd·bt5.3
【android bluetooth 协议分析 01】【HCI 层介绍 9】【ReadLocalSupportedCommands命令介绍】HCI_Read_Local_Supported_Commands 是 HCI 层中非常重要的查询命令。它允许 Host(如 Android 系统中的 Bluetooth stack)获取 Controller(蓝牙芯片)支持的 所有 HCI 命令 列表。
奔跑吧 android3 个月前
android·bluetooth·hci·bt·hcicmd·readlocalver·bt5.3
【android bluetooth 协议分析 01】【HCI 层介绍 8】【ReadLocalVersionInformation命令介绍】HCI_Read_Local_Version_Information 命令用于读取本地 Bluetooth Controller 的版本信息,包括 HCI 和 LMP 层的版本,以及厂商 ID 和子版本号。 这类信息用于 Host 识别当前控制器的 功能支持范围、厂商来源 及其具体的实现版本,通常用于以下场景:
奔跑吧 android3 个月前
android·bluetooth·hci·bt·gd·aosp13
【android bluetooth 协议分析 01】【HCI 层介绍 3】【NUMBER_OF_COMPLETED_PACKETS 事件介绍】我们在介绍 【android bluetooth 框架分析 02】【Module详解 8】【Controller 模块介绍】 中介绍 Controller 模块初始化流程时,在 Controller::impl::Start 函数中会看到 我们对 NUMBER_OF_COMPLETED_PACKETS 事件做了 专门的监听:
奔跑吧 android3 个月前
android·bluetooth·bt·gd·aosp13·writelehostsup·hcicmd
【android bluetooth 协议分析 01】【HCI 层介绍 6】【WriteLeHostSupport命令介绍】HCI 指令 HCI_Write_LE_Host_Support 是 Bluetooth Host 向 Controller 发送的一条指令,用于启用或禁用主机对 Bluetooth Low Energy(LE)的支持能力。该指令属于 HCI(Host Controller Interface)命令集合中,规范位置为 Core Spec v5.x,Vol 2, Part E, Section 7.3.79。
奔跑吧 android3 个月前
android·bluetooth·bt·aosp13·storagemodule
【android bluetooth 框架分析 02】【Module详解 6】【StorageModule 模块介绍】我们在 gd_shim_module 介绍章节中,看到 我们将 StorageModule 模块加入到了 modules 中。
奔跑吧 android3 个月前
android·bluetooth·bt·gd·a2dpsink·免切源·aosp14
【android bluetooth 协议分析 12】【A2DP详解 1】【车机侧蓝牙音乐免切源介绍】“车机蓝牙音乐免切源” 是近年来车载系统(IVI,In-Vehicle Infotainment)中常见的一个用户体验优化功能。它主要是为了简化蓝牙音乐播放流程、减少用户操作,提升使用便捷性。
奔跑吧 android4 个月前
android·bluetooth·l2cap·gd·aosp13
【android bluetooth 协议分析 06】【l2cap详解 11】【l2cap连接超时处理逻辑介绍】我们在使用蓝牙的过程中, 当上层 应用 断开所有的 profile 后, 协议栈就会帮我们下发 disconnect 命令。本节就让笨叔, 带大家一起梳理这块内容,具体在协议栈如何处理的。
奔跑吧 android4 个月前
android·bluetooth·bt·aosp13·btaa
【android bluetooth 框架分析 02】【Module详解 4】【Btaa 模块介绍】我们在上一篇文章中介绍 HciHal 模块时,有如下代码我们先回忆一下 模块加载的流程:在 ModuleRegistry::Start 函数中我们对 加入的所有 module 挨个初始化。 而在该函数中启动一个 module 都要执行那下面几步:
奔跑吧 android4 个月前
android·queue·bluetooth·bt·aosp13·bidiqueue·bidiqueueend
【android bluetooth 框架分析 02】【Module详解 12】【 BidiQueue、BidiQueueEnd、Queue介绍】蓝牙协议栈里面有很多 BidiQueue ,本节就专门来梳理这块内容。BidiQueue,是 Host 与 Controller 层通信的中枢之一, acl_queue_、sco_queue_、iso_queue_ 都是 BidiQueue 类型。让我们一起看一下这个结构。