繁体   English   中英

如何使Android BLE连接到Bluez Peripheral? (连接问题)

[英]How to make Android BLE connect to Bluez Peripheral? (Connection issues)

我正在尝试使用低功耗蓝牙将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库,并不断扫描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扫描器,例如这个 它接收广告包并列出外围设备,但尝试连接失败。

到目前为止,我尝试了

  • 不同的BlueZ版本
  • 不同的Linux机器
  • Google Play商店中的各种BLE扫描仪应用
  • 拔下并重新插入加密狗
  • 重启Ubuntu和Android
  • 重置网络设置,甚至恢复出厂设置的Android

使用BlueZ btmon工具时,尝试连接时看不到HCI流量。 这让我猜测问题出在我的BlueZ HCI配置中,还是在Android或Android硬件中。 我尚未尝试使用其他Android设备,但会尽快尝试。

有没有人遇到类似的问题,或者知道如何进行更深层次的调试? 非常感谢你。

您有运气解决这个问题吗? 我认为,如果配置了连接参数(到目前为止,尚无法从用户空间bluez获得),则该参数应该能够解决问题。 我可以通过bluez看到,与GATT建立连接时,Android应用会立即断开连接。

我有个类似的问题。 这是我取得的进步

确保将Android配置为仅以BLE模式连接:

mBluetoothGatt = device.connectGatt(this, false, mGattCallback, TRANSPORT_LE);

首先尝试从非Android设备进行连接(这是我遇到的问题)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM