以编程方式启用HCI蓝牙监听日志

时间:2016-03-31 06:37:08

标签: android logging bluetooth hci

有一个众所周知的way可以从开发者选项UI启用HCI蓝牙窥探日志 有没有办法以编程方式实现这一目标?

1 个答案:

答案 0 :(得分:2)

1。使用bt_stack.conf(需要root)

  • 找到您的bt_stack.conf文件(有时位于/etc/bluetooth/,有时位于/data/misc/bluetooth
  • 修改bt_stack.conf文件(设置BtSnoopLogOutput=true
  • 禁用然后启用蓝牙 - 这将启动HCI监听记录
  • 当您确定足够时,请在设置时再次编辑该文件 BtSnoopLogOutput=false并重置蓝牙 - 这将停止HCI监听记录

2。使用隐藏的Android API

请注意,此方法需要您的申请获得BLUETOOTH_ADMIN权限 如果没有问题,您可以使用相同的code Android系统设置应用。

private void writeBtHciSnoopLogOptions() {
    BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
    adapter.configHciSnoopLog(true);
}

configHciSnoopLogBluetoothAdapter class隐藏API的一部分,因此请务必了解如何启用它:

3。使用SL4A

  

SL4A允许您直接在Android设备上编辑和执行脚本和交互式解释器,从而为Android带来脚本语言。这些脚本可以访问成熟的Android应用程序可用的许多API,但是通过大大简化的界面可以轻松完成任务。

如果您的Android图片内置支持SL4A,则可以使用BluetoothFacade的以下方法:

@Rpc(description = "Enable or disable the Bluetooth HCI snoop log")
public boolean bluetoothConfigHciSnoopLog(
        @RpcParameter(name = "value", description = "enable or disable log")
        Boolean value
        ) {
    return mBluetoothAdapter.configHciSnoopLog(value);
} 

请注意,Github上的API reference已过时,但您可以看到最新的官方AOSP repoCommon\src\com\googlecode\android_scripting\facade\bluetooth

启用HCI snoop日志的Python脚本如下所示:

from android import Android

droid = Android()
droid.bluetoothConfigHciSnoopLog(True)

完成日志记录后,您可以在/sdcard/btsnoop_hci.log

中找到HCI Snoop日志