Как заставить Android BLE подключаться к Bluez Peripheral? (Проблемы с подключением)

Я пытаюсь подключить свой смартфон Nexus 5 (Android 6.0.1) к настольному компьютеру (64-разрядная версия Ubuntu 15.04 с BlueZ 5.36) с помощью Bluetooth Low Energy. Я использую USB-ключ BT 4.0 с чипсетом CSR BC8510.

Настройка действительно сработала всего пару дней назад. Затем я переключился на USB-ключ Broadcom, и он начал работать нестабильно. Подключение стало медленным и начало сбоить. Теперь он больше не работает, хотя я снова переключился на ключ 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
  • различные приложения для сканирования BLE из магазина Google Play
  • отключение и повторное подключение ключа
  • перезагрузка Ubuntu и Android
  • сброс настроек сети и даже заводские настройки Android

Используя инструмент BlueZ btmon, я не вижу трафика HCI при попытке подключения. Это заставляет меня предположить, что проблема где-то в моей конфигурации BlueZ HCI, или внутри Android, или в моем оборудовании Android. Я еще не пробовал другое устройство Android, но сделаю это как можно скорее.

У кого-нибудь были подобные проблемы или он знал, как отлаживать на более глубоком уровне? Большое тебе спасибо.


person oberger    schedule 13.01.2016    source источник


Ответы (2)


Удалось ли вам решить эту проблему? Я думаю, что параметры подключения (пока что невозможно из пользовательского пространства bluez), если они настроены, должны решить проблему. С помощью bluez я мог видеть, что приложение Android немедленно отключается при подключении к GATT.

person NEERAJ SWARNKAR    schedule 03.07.2017

У меня похожая проблема. Вот прогресс, которого я добился

Убедитесь, что Android настроен для подключения только в режиме BLE:

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

Попробуйте сначала подключиться с устройства, отличного от Android (это та часть, на которой я застрял)

person NewEndian    schedule 03.09.2017