Старшие версии 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 шт):
Необходимо после первого запуска приложения на телефоне перейти в Системные настройки телефона/Приложения/Все приложения/Наше приложение/Разрешения приложений/ и здесь включить определение местоположения.