如何在 Android 上启用/禁用蓝牙硬件初始化日志记录?

问题描述

简短的问题是:有没有办法在 Android 上启用/禁用蓝牙硬件初始化的日志记录?如果是这样,如何?

我有两个“Samsung galaxy Tab A 10.5”设备和我目前正在开发的 BLE 应用。该应用程序在一台设备上完美运行。然而,第二个设备 扫描时找不到任何蓝牙设备。

这个问题是大约一个月前发现的。那些天快速浏览 logcat 会发现大量与 as_type 相关的错误消息。现在,几周后,HIDL 消息不再出现在 logcat 中。但是,扫描仍然不起作用。 奇怪的是,logcat 中甚至没有一条蓝牙​​相关的消息,这使得调试这个问题有点困难。

编辑: 启用 HCI 监听日志只会显示一条错误消息:

HIDL

很明显,其中一块平板电脑已损坏。有趣的是为什么 *** command 'lshal debug -E android.hardware.bluetooth@1.0::IBluetoothHci/default' Failed: exit code 128 错误消息突然停止显示,以及如何恢复它们?

实际问题是蓝牙虽然初始化完成没有错误,但无法正常工作。问题是,应用如何检测并警告用户

我想通过阅读日志来检测蓝牙故障:如果扫描蓝牙设备没有产生任何结果,并且如果记录了一些 HIDL 错误消息,那么应该警告用户有问题运行应用程序的设备。 现在 HIDL 错误消息消失了,需要一种不同的方法。您对如何检测蓝牙是否正常工作有更好的想法吗?

解决方法

您可以在开发者选项中启用蓝牙 HCI 监听日志:

设备设置 -> 开发者选项 -> 启用蓝牙 HCI 监听日志。

Detailed instruction - 如何启用 HCI 日志。