Android 9 原生设置关于蓝牙设置(六)

news/2024/10/18 12:32:33/

蓝牙A2DP Sink连接

在这里插入图片描述
  打开蓝牙并允许蓝牙可被检测到,然后用手机连接此设备,进行A2DP Sink连接,连接时调用com_android_bluetooth_a2dp_sink.cpp bta2dp_connection_state_callback()
  -->A2dpSinkStateMachine.java onConnectionStateChanged() 发送EVENT_TYPE_CONNECTION_STATE_CHANGED广播
  -->A2dpSinkStateMachine.java Disconnected.processConnectionEvent()
  当前状态是Disconnected,新状态是CONNECTION_STATE_CONNECTING,:
在这里插入图片描述
在这里插入图片描述
  上面代码首先做一些音频相关的处理(这里不分析它),然后发送广播MSG_CONNECTION_STATE_CHANGED、切换状态到Pending。
  -->A2dpSinkStateMachine.java IntentBroadcastHandler.handleMessage()
  -->A2dpSinkStateMachine.java IntentBroadcastHandler.onConnectionStateChanged()
在这里插入图片描述
  发送广播CONNECTION_STATE_CHANGED,不过这个广播最终没有被处理(所以Setting软件界面没有更新)。最后调用Profile.notifyProfileConnectionStateChanged()。

  接着com_android_bluetooth_a2dp_sink.cpp bta2dp_audio_config_callback()被调用:
在这里插入图片描述
  此时状态是Pending:
在这里插入图片描述
  调用processAudioConfigEvent(),通知音频格式的变化。
  

  接着com_android_bluetooth_a2dp_sink.cpp bta2dp_connection_state_callback()再被调用:
在这里插入图片描述
此时状态是Pending:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  和前面一样调用AudioManager.setBluetoothA2dpDeviceConnectionState(),不过因状态变成Connected,所以会进行一些音频切源操作。然后发送广播,Setting应用并没有处理它。最后将状态切为Connected。
在这里插入图片描述
发送广播,但原生设置代码没有对它处理。


http://www.ppmy.cn/news/836875.html

相关文章

设置左右手蓝牙BLE

系列文章列表 为什么要自己做一把蓝牙机械键盘用到的东西制作左手设置左右手蓝牙BLE制作右手轴体焊接及供电模块后记 BLE跟普通蓝牙相比, 功率低, 成本低, 所以用来做左右手数据的传输. 在前一章, 我们已经把左手的PCB焊接好了, 现在我们开始设置左右手的HM-10, 让两块HM-10…

Android 9 原生设置关于蓝牙设置(二)

Setting关于蓝牙的界面 Android 9原生设置将连接(connect)相关的功能归成一类,UI定义了ConnectedDeviceDashboardActivity类来管理。本文不解析上面UI的生命周期,可参考https://blog.csdn.net/elzza/article/details/81560845。与…

Ubuntu下蓝牙设置

2019独角兽企业重金招聘Python工程师标准>>> 笔记版电脑安装了Ubuntu 18.04,可以开启和关闭蓝牙,但是手机、蓝牙音响、其他电脑蓝牙都无法扫描到它,它也扫描不到其他蓝牙设备。网上搜索了一下,应该是驱动没装好&#x…

蓝牙耳机Priority设置流程

当蓝牙耳机配对成功后,会发送一个BONDING_STATE_CHANGE的消息,在BondStateMachine状态机里会对这个消息进行处理,调用setProfilePriorty(dev)函数对当前的耳机进行优先级的设置, 把以前的设置优先级顺序Hid、A2DP、Headset改为He…

CSR8675项目实战:BlueAg蓝牙一拖二发射器

为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板【淘宝链接:思度科技CSR开发板】。 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入群,赠PPT、项目源码、视频教程&#x…

蓝牙通用外观设置

蓝牙通用外观设置 在开发蓝牙设备时,需要设置蓝牙设备的外观,在代码中,通常这个关键字为appearance需要设置一个值,对于非通用设备,这个值一般为:0,对于是通用设备那么他是存在外观图标的&#…

ventura 双系统win之间切换蓝牙设备自动连接教程

ventura 双系统win之间切换蓝牙设备自动连接教程 见论坛有小伙伴在咨询ventura跟win双系统切换蓝牙鼠标无法自动连接上的问题,现在说说具体怎么设置才能实现双系统互换自动连接的教程,之前论坛上已经有大神发过类似的,并非原创,ve…

Android 9 原生设置关于蓝牙设置(五)

蓝牙配对及A2DP连接 参考:蓝牙配置流程 当点击设置界面的某个蓝牙设备时会调用DeviceListPreferenceFragment里面: 最终调用BluetoothDevicePreference.onClicked(),主要代码如下: 上面的逻辑里会根据不同的情况执行不同的…