Старшие версии Android телефонов не видят BLE устройство

Есть публичный проект под Android Studio - BluetoothLeGatt, который обнаруживает Bluetooth Low Energy устройства и показывает их службы и характеристики. Также есть проект для ESP32 под Arduino IDE, тоже публичный, находится в Примеры/ESP BLE Arduino/BLE_server_multiconnect - здесь создаётся сервер, в нём создаётся служба, характеристика, и запускается advertising.

Я собрал apk файл и установил в телефон с версией Android 4.4.1 - всё прекрасно работает - приложение показывает найденное устройство "ESP32" и можно посмотреть его службы и характеристики.

Телефоны же с более молодой версией Android (8.1 и 9.0) не видят устройство при сканировании. При этом если зайти в системные настройки телефона и устройства Bluetooth, то там устройство ESP32 будет видно.

Понимаю, что-то не так с проектом на Android Studio. В файле AndroidManifest.xml все нужные разрешения установлены.

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Как решить проблему, чтоб и на младших моделях Android устройство определялось?


Ответы (1 шт):

Автор решения: Olejan

Необходимо после первого запуска приложения на телефоне перейти в Системные настройки телефона/Приложения/Все приложения/Наше приложение/Разрешения приложений/ и здесь включить определение местоположения.

→ Ссылка