通过前面的 Avrcp 协协议的学习,我们知道蓝牙音乐的控制是通过媒体播放器进行的。而媒体播放器的数据发生变化时会通过 MediaSeesion 通知客户端,本篇文章主要分析一下歌曲信息是如何传递的。

Avrcp 协议

首先歌曲信息发生变化,我们会在 AvrcpControllerService 的 onTrackChanged 中收到回调。

AvrcpControllerService.onTrackChanged()

源码位置:/packages/apps/Bluetooth/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerService.java

// 当一个轨道发生变化并且本地AvrcpController注册更新时由JNI调用。
private synchronized void onTrackChanged(byte[] address, byte numAttributes, int[] attributes, String[] attribVals) {BluetoothDevice device = getAnonymousDevice(address);AvrcpControllerStateMachine stateMachine = getStateMachine(device);if (stateMachine != null) {AvrcpItem.Builder aib = new AvrcpItem.Builder();aib.fromAvrcpAttributeArray(attributes, attribVals);aib.setDevice(device);aib.setItemType(AvrcpItem.TYPE_MEDIA);aib.setUuid(UUID.rando

Android 蓝牙开发——Avrcp协议获取歌曲信息(十八)相关推荐

  1. Android 蓝牙开发——Avrcp协议(十二)

    SDK路径:frameworks/base/core/java/android/bluetooth/ 服务路径:packages/apps/Bluetooth/src/com/android/blue ...

  2. Android 蓝牙开发——自动重连机制(十八)

    在日常使用蓝牙的过程中,想必大家都发现了这样一个现象:连接蓝牙设备的手机在关闭再重新打开蓝牙后,会自动连接上先前连接着的那个设备,同样的场景对于安卓车机系统效果也是一致的.本篇文章我们就来聊一聊安卓系 ...

  3. Android 蓝牙开发——PBAP协议(十)

    SDK路径:frameworks/base/core/java/android/bluetooth/ 服务路径:packages/apps/Bluetooth/src/com/android/blue ...

  4. android spp协议,Android蓝牙开发SPP协议通信

    最近项目中使用到蓝牙SPP协议通信,然后在网上看了很多资料,进行学习使用,为了加深印象,做个简单的整理. 1.使用蓝牙权限< uses-permission android:name=" ...

  5. Android蓝牙音乐获取歌曲信息

    由于我在蓝牙开发方面没有多少经验,如果只是获取一下蓝牙设备名称和连接状态那么前面的那篇文章就已经足够了,接下来的内容是转自一个在蓝牙音乐方面颇有经验的开发者的博客,他的这篇文章对我帮助很大. 今天,先 ...

  6. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  7. Android蓝牙开发 — 经典蓝牙BLE蓝牙

    一,前期基础知识储备 1)蓝牙是一种支持设备之间短距离通信的无线电技术(其他还包括红外,WIFI): 支持移动电话.笔记本电脑.无线耳机等设备之间进行信息的交换: Android支持的蓝牙协议栈:Bl ...

  8. Android 蓝牙开发(一) -- 传统蓝牙聊天室

    Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 一.蓝牙概览 以下是蓝牙的介绍,来自维基百科: 蓝牙(英语: ...

  9. Android - 蓝牙开发

    文章目录 科普 SIG 类型 制式 选择 逻辑链路控制适配协议 (L2CAP) L2CAP的功能 蓝牙框架和 RFCOMM 协议 蓝牙安全 白名单机制 编程 蓝牙权限 Classic Bluetoot ...

最新文章

  1. (一)深入浅出图解Git,入门到精通(保姆级教程)
  2. ExtJs十三(ExtJs Mvc图片管理之三)
  3. 重写慢日志解析程序,实现打印慢SQL信息及其所属数据库
  4. 【BZOJ2149】拆迁队,分治+斜率优化DP
  5. Linux下chkconfig命令介绍
  6. 重新认识一遍JavaScript - 2
  7. 缓存java框架技术预研4:LazyUnsafeAllocator.java算法分析
  8. R语言︱缺失值处理之多重插补——mice包
  9. 金蝶KIS旗舰版直接新增销售出库单使用说明,金蝶盘点机PDA仓库条码管理
  10. SpringBoot +esapi 实现防止xss攻击
  11. 励志:滴滴打车App初期是怎么推广的?
  12. 黄金价格走势软件下载,国内十大现货黄金正规平台排名(2022最新榜单)
  13. 翟山鹰“生态宇宙”重磅首发 缔造超级共赢生态
  14. 检测笔记本电脑的主板,cpu,硬盘的温度
  15. 参考文献格式详细解释和引用(常见)
  16. WINUSB设备的inf文档的编写
  17. 【参考文献】视网膜色素上皮细胞生长培养
  18. 深度优先搜索中的树边、后向边,前向边和交叉边
  19. “大众系列 Volkswagen”被美国GBC代理,附处理方案
  20. 缩水u盘的快速检测方法

热门文章

  1. Z-INDEX: 999
  2. Android实例——2048游戏
  3. Linux 虚拟机登录方法
  4. golang包time用法详解
  5. 巧用img的width和height属性进行缩图,使图片不变形
  6. 使用服务器训练模型详解
  7. 区块链+游戏还有什么可能性?
  8. 【数据异常校验】肖维勒准则(Chauvenet Criterion)处理异常数据
  9. 利用python求行列式、矩阵的秩和逆
  10. HDU 5750 快速筛素数法打表