Расположение должно быть включено для Bluetooth Low Energy Scanning на Android 10.0 - PullRequest
2 голосов
/ 03 октября 2019

После обновления моего Pixel XL до Android версии 10.0 сканирование по Bluetooth с низким энергопотреблением (BLE) будет работать только при включенном местоположении.

До сих пор это не было проблемой, и она работает на нескольких устройствах, работающихна Android 9.0, 8.0 и 6.0.1.

Мое приложение сканирует только на переднем плане, используя BluetoothLeScanner startScan(List<ScanFilter> filters, ScanSettings settings, ScanCallback callback)

Мое приложение имеет разрешения FINE_LOCATION, COARSE_LOCATION и BLUETOOTH, я пробовалдобавив разрешение ACCESS_BACKGROUND_LOCATION, но не повезло.

Существуют ли в Android 10.0 более строгие требования к приложениям для сканирования устройств Bluetooth, я ничего не могу найти по этому поводу и надеюсь, что мне не придется просить пользователей включитьна месте для моего приложения для работы.

1 Ответ

3 голосов
/ 04 октября 2019

Начиная с Android 10, теперь необходимо включить ACCESS_FINE_LOCATION для выполнения операций Bluetooth. Причина этого заключается в том, что Bluetooth может использоваться для сбора информации о местоположении пользователя (например, с помощью маяков BLE), и для этого должно быть объявлено соответствующее разрешение приложения.

Для Android 9 и ниже, ACCESS_COARSE_LOCATIONдостаточно, вероятно, поэтому ваше приложение работало без проблем.

Более подробную информацию можно найти здесь: -

Надеюсь, это поможет.

...