如何在 Android 上启用/禁用蓝牙硬件初始化日志记录?
Posted
技术标签:
【中文标题】如何在 Android 上启用/禁用蓝牙硬件初始化日志记录?【英文标题】:How to enable / disable Bluetooth hardware initialization logging on Android? 【发布时间】:2021-06-15 20:21:29 【问题描述】:简短的问题是:有没有办法在 android 上启用/禁用蓝牙硬件初始化记录?如果有,怎么做?
我有 两个 “Samsung Galaxy Tab A 10.5” 设备和一个我目前正在开发的 BLE 应用程序。该应用程序在一台设备上完美运行。然而,第二个设备确实 扫描时找不到任何蓝牙设备。
这个问题是大约一个月前发现的。那些日子里,快速浏览一下 logcat 就会发现很多与HIDL
相关的错误消息。现在,几周后,HIDL
消息不再出现在 logcat 中。但是,扫描仍然不起作用。
奇怪的是,logcat 中甚至没有一条与蓝牙相关的消息,这使得调试这个问题有点困难。
编辑: 启用 HCI 监听日志只会显示一条错误消息:
*** command 'lshal debug -E android.hardware.bluetooth@1.0::IBluetoothHci/default' failed: exit code 128
很明显,其中一块平板电脑已损坏。有趣的是为什么HIDL
错误消息突然停止显示,以及如何恢复它们?
实际的问题是蓝牙,虽然初始化完成没有错误,但无法正常工作。问题是,应用如何检测到它并警告用户?
我想过通过阅读日志来检测蓝牙故障:如果扫描蓝牙设备没有产生任何结果,并且如果记录了一些 HIDL
错误消息,那么应该警告用户设备有问题运行应用程序。
现在HIDL
错误消息消失了,需要一种不同的方法。您知道如何检测蓝牙是否正常工作吗?
【问题讨论】:
【参考方案1】:您可以在开发者选项中启用蓝牙 HCI snoop log:
设备设置 -> 开发者选项 -> 启用蓝牙 HCI 监听日志。
Detailed instruction - 如何启用 HCI 日志。
【讨论】:
非常感谢您的快速回复!不幸的是,创建 HCI 日志失败。我已经用其他信息更新了问题。以上是关于如何在 Android 上启用/禁用蓝牙硬件初始化日志记录?的主要内容,如果未能解决你的问题,请参考以下文章