一、概念

ACL 链路在 Bluetooth 中非常重要,一些重要的应用如 A2DP, 基于 RFCOMM 的应用,BNEP等都要建立, ACL 链路,发送/接收ACL 包。今天一起来分析 ACL 包发送/接收流程,以及涉及到的重要 command/event。

下图是各种应用层使用 L2CAP 的 API:L2CA_DataWrite 发送数据流的过程。

应用层数据到 L2CAP 的入口

我们假设一个听音乐的场景,大家一起分析音乐数据流 AVDTP 以下层的传送。在 AVDTP 中,所有的功能想发送 Data,必须调用 avdt_ad_write_req 这个函数,我们 就从这个函数入手分析。

//当CCB或SCB给l2cap的 Channel 发送数据时,他们最终都会使用到L2CAP的 API:L2CA_Data_Write2 UINT8 avdt_ad_write_req(UINT8 type, tAVDT_CCB *p_ccb, tAVDT_SCB *p_scb, BT_HDR *p_buf)3 {4     UINT8   tcid;5 6     /* get tcid from type, scb */

Android 蓝牙 A2dp音频数据通过L2cap 发往Controller -- 代码详解相关推荐

  1. android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)

    前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...

  2. android生命周期_Android开发 View的生命周期结合代码详解

    咱们以TextView控件为例: /** * Created by SunshineBoy on 2020/9/23. */ public class TestTextView extends and ...

  3. android接收串口发送字符,安卓串口通讯发送指令代码详解

    最近好多做安卓端跟硬件交互的,比如一些智能家居,贩卖机的. 而这些不管是485也好,232的板子也好,都会用到串口通讯,去往下位机发送指令操控.下面是我个人的一些理解,发送串口指令的方法都是一样的,各 ...

  4. android 方向控制界面,Android Studio屏幕方向以及UI界面状态的保存代码详解

    项目:orientation package com.example.orientation; import android.os.bundle; import android.util.log; i ...

  5. 数据分析--使用Web API(应用编程接口)以自动请求GitHub网站的特定信息为例爬取数据,附完整的Python代码详解

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请 ...

  6. Android 蓝牙 A2dp 编码SBC、AAC、Aptx、LDAC、LHDC aduio音频概述(1)

    同学,别退出呀,我可是全网最牛逼的 Android 蓝牙分析博主,我写了上百篇蓝牙文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦. androi ...

  7. Android蓝牙A2DP连接实现

    代码地址如下: http://www.demodashi.com/demo/14624.html 开发环境: 开发工具:Androidstudio 适配机型:honor8(Android6.0), 坚 ...

  8. 蓝牙 A2DP 音频传输格式-全面解析

    1. 蓝牙 A2DP 音频传输格式 达到 CD 音质需要 1411.2 kbit/s 的带宽,显然 A2DP 无法允许,所以音频数据需要经过压缩.我们知道同样的比特率下,不同的编码格式音质是不同的.A ...

  9. 车载bc8android蓝牙,android蓝牙接收单片机数据并绘制波形

    [实例简介] android蓝牙接收单片机数据并绘制波形 [实例截图] [核心代码] BluetoothActivity └── BluetoothActivity ├── AndroidManife ...

最新文章

  1. 成功解决 org.mybatis.spring.MyBatisSystemException问题!!
  2. html css右下角三角形,html – 框内的CSS中的三角形
  3. 【mongo】centos6.9安装mongo2.6.3
  4. ubuntu12.10下安装mysqlworkbench出现“Dependency is not satisfiable: libctemplate0”问题的解决方案...
  5. 找出数组中两个只出现了一次的数
  6. 「上云」不是终点,释放数据价值才是数字经济时代的「加油站」
  7. Linux之find exec
  8. 2018大华软件大赛模拟赛第4题 (某股票操盘手账户里有N支股票,股价互不等)
  9. 系统提示 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
  10. 在 CentOS7 安装 ELK
  11. Android中日期与时间设置控件的使用
  12. java 加锁_Java中的重重“锁”事
  13. 【专栏必读】王道考研408操作系统+Linux系统编程万字笔记、题目题型总结、注意事项、目录导航和思维导图
  14. 一阶逻辑形式推理系统
  15. 基于深度学习的语义分割
  16. Vue keep-alive的使用
  17. 何钦铭c语言第三版第3章答案,何钦铭版C语言第3章答案.pdf
  18. Gobelieve 架构(转载)
  19. jsp表单提交中文乱码的解决
  20. 单点登录 Ucenter 分析

热门文章

  1. 苹果宣布换芯 背后究竟硬气何在?
  2. git命令提交后push失败,缺少changeID的解决办法
  3. java8 stream运行原理之并行流原理详解
  4. EAX、ECX、EDX、EBX等寄存器的作用
  5. 爬虫有道词典,高精度加密版
  6. 王者荣耀6月23服务器维护,王者荣耀6月23日维护到几点 王者荣耀6月23日维护延期补偿...
  7. 导出备忘录Word文档
  8. Elasticsearch 入门案例
  9. 分享线下活动丨物联网走进UIC
  10. 短视频搬运如何上热门?搬运视频哪个平台容易挣钱?