【发布时间】:2016-04-18 13:48:33
【问题描述】:
我正在尝试使用蓝牙低功耗将我的 Nexus 5 (Android 6.0.1) 智能手机连接到我的台式计算机(Ubuntu 15.04 64 位和 BlueZ 5.36)。 我使用带有 CSR BC8510 芯片组的 BT 4.0 USB 加密狗。
该设置在几天前确实有效。 然后我切换到 Broadcom USB 加密狗,它开始变得不稳定。 连接变慢并开始失败。 即使我切换回 CSR 加密狗和不同的 Ubuntu 机器(仍然使用相同的 Android 设备),它现在也不再工作了。 但是接收广告数据包不受影响并且仍然有效。 我的项目使用Android Beacon Library 并持续扫描BLE 广告包。
一个不适合我的最小设置——但在我看来应该——如下:
使用以下脚本制作 BlueZ 广告:
# Set advertising data (AltBeacon format).
sudo hcitool -i hci0 cmd 0x08 0x0008 1F 02 01 02 1B FF 00 00 BE AC 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 BC 00
# Set advertising interval.
sudo hcitool -i hci0 cmd 0x08 0x0006 A0 00 A0 00 00 00 00 00 00 00 00 00 00 07 00
# Start advertising.
sudo hcitool -i hci0 cmd 0x08 0x000a 01
# Run Bluez example gatt server.
./test/example-gatt-server
启动 BLE 扫描仪,例如 this one。它接收广告数据包并列出外围设备,但尝试连接失败。
到目前为止我尝试过
- 不同的 BlueZ 版本
- 不同的 Linux 机器
- 来自 Google Play 商店的不同 BLE 扫描仪应用
- 拔下并重新插入加密狗
- 重启 Ubuntu 和 Android
- 重置网络设置,甚至恢复出厂设置 Android
使用 BlueZ btmon 工具,我在尝试连接时看不到 HCI 流量。
这让我猜测问题出在我的 BlueZ HCI 配置或 Android 或我的 Android 硬件内部。
我还没有尝试其他 Android 设备,但我会尽快尝试。
有没有人遇到过类似的问题或者知道如何进行更深层次的调试? 非常感谢。
【问题讨论】:
标签: android bluetooth bluez bluetooth-lowenergy