我正在运行Android 4.4.2并启用了"Bluetooth HCI snoop log",如此处所述嗅探/记录您自己的Android蓝牙流量
打开和关闭蓝牙后,我重新启动了手机.我在预期的位置找不到日志文件:
$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist
Run Code Online (Sandbox Code Playgroud)
我怎样才能到达btsnoop_hci.log?
背景资料:
我已经为OSX实现了蓝牙LE外设,它暴露了两个特性(使用CoreBluetooth).一个是可读的,一个是可写的(两者都有指示).我在iOS上实现了一个Bluetooth LE Central,它将从可读特性中读取并写入可写特性.我已将其设置为每次读取特征值时,都会更新该值(以类似于此示例的方式).我通过这种设置获得的传输速率非常缓慢(以大约340 字节 /秒的测量持续速度进行补偿).此速度是实际数据,而不是包括数据包详细信息,ACK等的度量.
问题:
这种持续的速度太慢了.我考虑过两个解决方案:
我相信,我已经用尽了选项1.我没有看到任何其他可以调整的参数.我只限于每封邮件发送20个字节.还有其他任何东西,我在iOS设备上收到有关未知错误,不太可能错误或值"不长"的神秘错误.由于演示项目还指示了一个20字节的MTU,我会接受这可能是不可能的.
所以我留下了选项2.我试图以某种方式修改OSX上蓝牙LE的连接参数,希望能够提高传输速度(通过将最小和最大连接间隔分别设置为20ms和40ms - 如以及每个连接间隔发送多个BT数据包).看起来在IOBluetooth上提供我自己的SDP服务是在OSX上实现这一目标的唯一方法.这个问题是关于如何做到这一点的文档可以忽略不计.
这告诉我如何实现我自己的服务(尽管使用deprecate API),但是,它没有解释注册SDP服务所需的参数.所以我想知道: