Устройство Android не может подключиться к BleGattServer

Я пытаюсь запустить следующие два проекта Google Sample:

1) Пример сервера BLE Gatt https://github.com/androidthings/sample-bluetooth-le-gattserver

2) Пример клиента BLE Gatt https://github.com/googlesamples/android-BluetoothLeGatt

Я использую 2 телефона:

1) Самсунг Галакси С5

2) Motorola G4 Plus

После добавления небольших фрагментов кода для предоставления разрешений BLE и Coarse Location Access проекты работали с Samsung Galaxy S5, на котором размещен сервер, то есть проект github 1, и Moto G4 Plus, на котором запущен клиент BLE Gatt.

Однако при смене ролей, то есть Samsung Galaxy S5, на котором запущен клиент, и Moto G4 Plus, на котором размещен сервер, я не могу добиться успешного подключения.

Я попытался запустить клиент на другом телефоне (Moto G5), и это тоже не удалось.

Кажется, Moto G4 Plus не может успешно подключиться.

Кто-нибудь может подсказать, почему это может происходить? Есть ли какие-то особые разрешения, о которых мне нужно позаботиться?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ. После попытки отладки приложения я обнаружил, что на проблемном устройстве, например Moto G4 Plus, после вызова connectGatt вызывается BluetoothGattCallback, но onConnectionStateChange() не вызывается.


person Vijay Rao    schedule 28.02.2018    source источник


Ответы (1)


Кажется, перезагрузка телефона решает эту проблему.

Как я уже сообщал ранее, Moto G4 Plus генерировал BluetoothGattCallback, но на самом деле не выполнял функцию обратного вызова. Я потратил около недели, пытаясь понять, было ли это аппаратным ограничением или проблемой разрешения. Я даже несколько раз включал и выключал Bluetooth. Судя по всему, выключение телефона и перезагрузка решили все проблемы. Это может быть полезно для тех, кто может столкнуться с той же проблемой.

person Vijay Rao    schedule 01.03.2018