Android BT
文章平均质量分 66
记录Android系统的BT相关知识和项目中遇到的相关问题。
sdkdlwk
做一位名副其实的工匠
合作,请私信!
展开
-
Android蓝牙音乐SRC侧的实现
对音频数据进行编码的具体操作则在各编码方式对应的处理函数中完成,源码路径参考:system\bt\stack\a2dp\a2dp_xxx_encoder.cc\a2dp_xxx_encode_frames(),xxx对应A2DP连接使用的编码方式(SBC、AAC、aptX、LDAC等)。Bluedroid 通过数据 socket 接收到 audio 发送过来的音频数据后,根据A2DP连接时双方协商确定的编码方式对数据进行编码操作,最终将编码后的数据通过l2cap链路发送到SNK端。原创 2024-01-07 13:29:12 · 10844 阅读 · 0 评论 -
A2DP Source如何从android系统拿到音频数据
5、启动数据通道后,会通过回调btif_a2dp_data_cb通知,进行一些必要的操作后(具体参考原生代码btif_a2dp_data_cb的实现),就可以使用UIPC_Read(UIPC_CH_ID_AV_AUDIO, &event, p_buf, len);A2DP_CTRL_PATH是控制通道,A2DP_DATA_PATH是数据通道。原创 2024-01-06 18:24:05 · 10680 阅读 · 1 评论 -
Android HCI日志分析案例3
客户反馈Android设备机上电后,自动连接蓝牙音箱后,等一段时间后,播放音乐,此时,蓝牙音箱声音很小,然后按设备上的音量按键调整音量,会出现,蓝牙音箱音量不同步的现象。看日志13分43秒左右确实有断开,之后再次连接后,没有注册绝对音量控制服务,只是注册了音量改变的通知。异常时 NewAvrcpTargetService 有断开,之后没有再次连接。我们看看正常时的,可以看到正常时是可以成功设置绝对音量的。这款蓝牙音箱是支持设置绝对音量的音箱。直接去掉判读条件即可。原创 2023-12-07 14:27:27 · 46879 阅读 · 0 评论 -
耳机拔掉或者断开,音乐播放暂停,Android源码分析
问题场景:有线耳机或者蓝牙耳机断开,此时音乐播放就会自动暂停,接下来分析下代码流程。接收该广播的位置:(已系统Music为例,也可能是自己的应用)监听此广播的地方就可以暂停音乐的播放。基于Android P MTK的代码。原创 2023-12-07 11:41:24 · 46560 阅读 · 0 评论 -
Android HCI日志分析案例2
基于MTK平台,通过MTKLogger开启保存HCI日志。Android日志查看logcat 搜索到关键log。根据这些信息,配对是链路层的行为,即在 HCI中搜索。一目了然,看到对端主动断开连接。原创 2023-12-02 23:15:26 · 46461 阅读 · 0 评论 -
Android HCI日志分析案例1
当应用层调用startDiscovery()时,Host会通过HCI发送一个 Inquiry HCI Command给 Controller。接下来我们会通过分析HCI log,来学习Inquiry的流程。在分析HCI log前,我们先来学习下HCI Command数据包的结构。原创 2023-12-02 21:44:18 · 47286 阅读 · 0 评论 -
Android BT HCI分析简介
HCI log是用来分析蓝牙设备之间的交互行为是否符合预期,是否符合蓝牙规范。分析Bug:蓝牙打开后搜索不到设备,或者搜索到的设备没有名称只有蓝牙地址;Android手机不能向苹果手机传输文件需求分析:手机需要适配一款蓝牙自拍杆来控制拍照,通过HCI log可以观察竞品在实现这个功能时,使用的是什么Bluetooth Profile?只要知道了使用的Bluetooth Profile,我们就有了实现这个功能的思路。原创 2023-12-02 17:57:26 · 47006 阅读 · 0 评论