安卓蓝牙问题一般分析步骤

BT问题解决步骤

  • 确认问题:需要分清模块(Audio,BT,Power等)

声音类问题的大部分是Audio模块的;

功耗类问题,优先要求功耗的负责人先进行分析;

  • 本地复现:(必现或高概率问题一定要本地复现下)

确认复现步骤,排除测试步骤问题(误操作或测试用例不对);

  • 对比验证:(必现或高概率问题,最好本地对比验证下)

更换对比机,同类型三方apk,车载设备,连接设备;

  • Check Log:需要check测试提供的有效性

分析问题以APLog和HCILog为主,log时间点和问题复现需要对应,log中有出现问题的信息等,问题单中无log的,需要让测试尽快提供。APlog用于Check BT的打开,扫描,匹配,连接使用是否正常;

  • Check历史版本

BT问题有时很可能是代码引入的,需要check历史版本是否存在问题(必现问题优先);

  • Check历史问题单
  • Check代码逻辑
  • 提交/Push QCOM /MTK Case

 

BT不同类型问题的常规处理方式

  1. 声音类问题
  • 声音小,无声,语音不完整;
  • 出声延时,声音卡顿;
  • POP音,底噪大,杂音不清晰,失真;

一般是Audio处理,以更新音频参数的方式为主(通路配置文件);

  • 出声设备不对(应该是BT,而speaker出声等),需要Check:
  • 声道占用情况;
  • A2DP,SCO等是否被关闭;
  • BT是否连接上存在问题;
  • 蓝牙配置文件(pofile);
  1. 参考资料

http://www.cnblogs.com/yangjies145/p/6436209.html

  1. 蓝牙耳机音量大小,音量控制
  • Audioservice ----> setStreamVolume
  • 状态栏蓝牙耳机电量:原生无此功能,音量显示需要耳机支持(对比验证即可);
  • 音频Log获取方法:使用QXDM抓取,QCAT解析;
  • Log关键字:AudioService,setStreamVolume(音量变化)requestAudioFocus(音频焦点),setMode
  1. 音乐播放类
  • 设备控制(开始,暂停,快进等),需要check:
  • 对比排除apk问题和软件支持情况;
  • Check AVRCP代码;
  • 异常接入(Ex:BT听歌 —> 电话 —> 挂断 —>听歌(未播放))
  • 复现问题,确认当前声道占用情况,音乐进程情况等;
  1. 参考资料

https://blog.csdn.net/shichaog/article/details/52180723

  1. 项目Code

packages/apps/Bluetooth/src/com/android/bluetooth/avrcp/Avrcp.java

  1. 文件传输类
  • 文件传输速率问题,需要check:
  • wifi打开情况(wifi,bt共存会影响速率);
  • 环境干扰(本地复测),check天线影响;
  • 文件无法发送,需要check:
  • 对比测试,确认测试手法(okb文件是无法传输的,apk发送);
  • 发送后文件异常(视频,图片无法打开等),需要check:
  • 对方机器不支持打开(对比验证);
  • 蓝牙键盘输入问题
  1. 参考资料
  • 蓝牙文件分享源码全解析

https://blog.csdn.net/sinat_22657459/article/details/53509338

  1. 项目Code
  • 配置蓝牙键盘按键

frameworks/base/packages/InputDevices/res/raw/keyboard_layout_hungarian.kcm

  1. 启动时间类
  • 本地反复打开(开关飞行模式)复测,由于UI显示的方式判断误差较大,需要求测试使用log方式来判断启动正常。
  • 蓝牙适配器的状态(打开/关闭蓝牙时状态值变化):
  • 打开过程:

BluetoothAdapterState: Bluetooth adapter state changed

10-14:关闭状态 > 适配器进入LE模式;

14-15:进入LE only mode模式;

15-11:LE only mode > 适配器正在打开的过程;

11-12:适配器打开成功;

  • 关闭过程:

12-13:

13-15:

15-16:

16-10:

  • Log关键字:BluetoothAdapterState
  1. 蓝牙连接类
  • 常用设备连接(小米上历史问题,都是HCILog异常导致)
  • 测试步骤
  • 地址
  • 自动连接
  • 仪器连接(需要优先确认连接步骤)
  • 需要执行ftmdaemon,则要userdebug版本测试;
  • BT测试脚本(测试认证)
  • 连接状态变化:

STATE_DISCONNECTED = 0          已断开

STATE_CONNECTING = 1              连接中

STATE_CONNECTED = 2                已连接

STATE_DISCONNECTING = 3        断开中

  • Log关键字:BluetoothPhonePolicy: processProfileStateChanged
  1. 蓝牙功耗类
  • 此类问题功耗负责人优先处理,如果定位是BT影响了功耗,再协助处理
  • 本地优先复测,可能测试有特殊操作,需要优先排除。
  • log打印会影响功耗
  • log打开对BT发送音乐的效果影响;
  • 射频参数的修改会影响功耗
  • 对比修改前后的功耗情况,如果差异大,需要射频协助处理;
  1. 蓝牙Crash类
  • 要求测试提供复现的log,根据log分析,以空指针原因为主
  • 需要确认安全保护的方式是否可用(try-catch,空指针判断);
  1. 蓝牙车载类
  • 同步联系人和信息(可能不支持)
  • 连接
  • 播放音乐
  • 控制接听/拨打电话
  • 需要对比验证:车载问题,三方apk问题,功能不支持;
  • Check Log是否有异常;
  1. 蓝牙共享网络
  • 功能一般无问题,大多是测试步骤不对,导致无法上网。
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抓取Android BTSnoop蓝牙HCI协议分析工具是一种用于捕获并分析Android设备上的蓝牙数据包的工具。蓝牙HCI协议是蓝牙设备之间进行通信所使用的一种协议,通过抓取并分析这些数据包,可以帮助开发人员或研究人员了解蓝牙设备之间的通信过程,诊断问题,甚至进行逆向工程。 要实现这一目的,可以按照以下步骤进行: 1. 安装抓包工具:首先,在Android设备上安装一个支持抓取蓝牙数据包的抓包工具。常用的工具有Wireshark和Bluetooth HCI Logger。 2. 启用抓包功能:在Android设备上,需要启用开发者选项,并开启蓝牙HCI日志记录功能。具体操作方式可能有所不同,可以通过打开设备的设置菜单,找到开发者选项,并开启蓝牙HCI日志记录选项。 3. 连接设备:将要抓取数据包的Android设备与目标蓝牙设备进行配对和连接。 4. 抓取数据包:通过打开抓包工具,选择蓝牙设备的接口,开始捕获蓝牙数据包。数据包将会被存储到本地设备的存储中。 5. 分析数据包:将抓取到的数据包导入到分析工具中进行分析分析工具可以对数据包进行解析,并显示出数据包的内容、属性和相关信息。 通过以上步骤,我们可以获取到Android设备上的蓝牙数据包,并利用分析工具对其进行解析。这将有助于了解蓝牙通信过程中的协议细节、错误和异常情况,从而进行问题排查和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值