
安卓源码避坑指南
文章平均质量分 65
专注于安卓源码存在的相关bug
坏小子VP
乐观主义者
展开
-
安卓源码避坑指南11—手机侧连接HFP总是失败
RFCOMM DM Frame原创 2022-04-20 20:15:00 · 1776 阅读 · 0 评论 -
安卓源码避坑指南10—蓝牙音乐播放状态和歌曲信息不更新
Transaction Labels 知多少 ......原创 2021-12-07 11:45:00 · 3665 阅读 · 2 评论 -
安卓源码避坑指南9—AVRCP连接状态异常
AVRCP连接状态异常安卓版本:android-9(P版本)问题现象:断开设备,迟迟没有发出BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED的广播将连接状态切到 BluetoothAdapter.STATE_DISCONNECTED查看log可以发现各个主要协议都断开完成,那为何上述广播没有及时发出去呢?该广播是在 AdapterProperties.sendConnectionStateChange() 中触发的,没有触发说明if条件不满足if原创 2021-11-11 11:30:00 · 5762 阅读 · 7 评论 -
安卓源码避坑指南8——上报profile连接状态地址为空值
上报协议连接状态地址为空值安卓版本:android-9(P版本)问题现象:上报a2dp-sink协议连接状态时,地址值为空导致蓝牙服务进程crash既然是a2dp-sink的状态变化广播中的地址值为空,那问题肯定就出在a2dp-sink的状态机A2dpSinkStateMachine中。全面分析完a2dp-sink的状态机中广播状态变化,只有如下场景下地址值可能为空值:正在连接设备A个过程中,设备B直接连接成功了,则上报设备A的连接状态变化时会出现地址空值设备B的地址值 device 是蓝原创 2021-01-29 11:27:11 · 418 阅读 · 0 评论 -
安卓源码避坑指南7——蓝牙音乐播放状态一直为暂停态
蓝牙音乐播放状态一直为暂停态蓝牙音乐的播放状态是蓝牙音乐等相关应用重点关心的变量,应用根据该状态值(播放、暂停)实时更新界面图标显示。本期就和大家简单分享下蓝牙音乐播放状态上报错误的源码问题。播放状态都是通过 AVRCP 协议从手机端获取过来的,还不了解的同学查看前面的AVRCP系列文章,相信能给大家提供帮助。CT控制端获取播放状态有两种方法:AVRCP Get Play StatusAVRCP Register Notification(Event =Playback)方法1是蓝牙原创 2020-09-23 16:33:31 · 1922 阅读 · 4 评论 -
安卓源码避坑指南6——电话记录为空号触发蓝牙重启
电话记录为空号触发蓝牙重启对于空的电话记录想必大家都会感到很奇怪,今天就给大家分享个空电话记录引起蓝牙crash的原生问题。空电话记录的产生:在如今社会中,个人信息满天飞,相关从业者通过网络拨号软件拨打你的电话后,就会在你的手机上产生一条空的电话记录。触发蓝牙重启指的是PBAP协议PCE端的蓝牙进程crash,从而引发蓝牙自动重启的问题。追踪分析后问题根因主要在 CallLogPullRequest.updateTimesContacted() 中,该方法用来统计通话记录中相同联系人的通话次数,并原创 2020-09-09 15:59:12 · 536 阅读 · 0 评论 -
安卓源码避坑指南5——获取通话记录或通讯录的数量为负值
安卓源码避坑指南5——获取通话记录或通讯录的数量为负值通过蓝牙PBAP协议同步通讯录、通话记录时,想必对其数量大小也是很感兴趣的,因此一般的设计思路都是先获取到同步对象的总大小,然后再同步该对象的具体数据。想法是美好的,然而现实却很魔幻。获取同步对象的总数量这块最近就遇到个奇怪问题——获取到的总数量为负值,今天就和大家一探究竟,详解此类问题。测试环境:android-9车机系统(高通安卓源码)测试步骤:车机蓝牙配对连接手机车机同步通讯录、通话记录等(手机授权通讯录权限)测试现象:获取到的原创 2020-09-03 13:29:13 · 554 阅读 · 0 评论 -
安卓源码避坑指南4—搜索中配对新设备失败
搜索中配对新设备失败有段时间没更新文章了,向各位朋友们抱拳了(主要这段时间项目比较忙,加班狗…)后续希望挤出更多时间来持续更新,那咱就赶紧开始本期的安卓避坑分享吧。测试环境:android-9车机系统(高通源码)测试步骤:点击蓝牙搜索搜索过程中点击搜索到的新设备进行配对连接测试现象:配对连接失败乍一看,操作步骤很正常啊,和大伙平常连接的操作是不是一模一样,怎么会失败呢?查看logcat如下:07-04 02:43:36.243 6346 6601 I bt_btm : BTM_S原创 2020-07-07 17:10:24 · 1096 阅读 · 4 评论 -
安卓源码避坑指南3——拨打电话的SIM卡无效导致蓝牙断开连接
安卓源码避坑指南3——拨打电话的SIM卡无效导致蓝牙断连它来了、它来了,它带着BUG赶来了,欢迎大家查看本期的安卓源码避坑指南。本期的问题场景比较特殊,电话SIM卡是无效的(欠费过期了,很是贫穷…)。开开心心地上着班、摸着鱼(-_-),突然工作邮件提醒,一经查看原来是QA同学甩过来个问题。那咱就话不多说,先简单介绍下本篇的问题场景。测试环境:Android 9的车机系统 + 手机中的SIM卡为无效SIM卡测试步骤:车机和手机使用蓝牙相互连接成功车机端主动拨打电话测试现象:由于手机中SIM原创 2020-05-14 10:23:42 · 870 阅读 · 2 评论 -
安卓源码避坑指南2—HF侧拨打蓝牙电话的ID号一直是 -1
安卓源码避坑指南2—拨打蓝牙电话的ID号一直是 -1又到了喜闻乐见的环节——安卓源码避坑指南,同事使用android-9源码全编了个系统镜像,安装完成后在HF侧主动拨打一通蓝牙电话后发现电话的ID号一直为-1,AT命令中的“+CLCC”中的idx参数协议中明确规定是从1开始计数的,表示当前的蓝牙电话是第几路电话。现在应用层却收到一个第-1路的蓝牙电话,这就很莫名其妙了,那本篇文章我们就来扒一扒这...原创 2020-04-13 14:30:04 · 707 阅读 · 0 评论 -
BLE传统广播避坑指南
BLE传统广播避坑指南前几天和同事一起讨论基于蓝牙BLE实现的current time profile功能,发现不少安卓源码问题。那这篇文章我们就来扒一扒安卓源码中涉及BLE广播的那些坑,为蓝牙开发者少走些弯路尽点绵薄之力。对BLE传统广播还不了解的小伙伴建议提前了解相关知识,可以查看我前一篇文章《低功耗蓝牙BLE传统广播总结》。使能一个传统BLE广播,需要设置参数、数据,使能广播这几个流程...原创 2020-03-26 16:41:06 · 1998 阅读 · 0 评论