После обновления до версии Android 6.0 сканирование Bluetooth с низким энергопотреблением (BLE) будет работать, только если на устройстве включены службы определения местоположения. См. Здесь для справки: Bluetooth Low Energy startScan на Android 6.0 не находит устройства
По сути, вам нужно, чтобы разрешение было включено как для приложения, так и для телефона. Это ошибка? Возможно ли сканирование без включения служб определения местоположения? Я не хочу, чтобы у всех моих приложений было местоположение.
ИЗМЕНИТЬ
Я не упомянул, что использую startScan()
метод, BluetoothLeScanner
указанный в API 21. Я согласен с курсом и разрешениями на точное местоположение в манифесте, которые требуются для этого метода. Я просто не хочу, чтобы пользователям моего приложения приходилось включать службы определения местоположения на своих устройствах (GPS и т. Д.), Чтобы использовать мое приложение.
Раньше startScan()
метод запускался и возвращал результаты с отключенными на телефоне службами определения местоположения. Однако на Marshmallow то же приложение «сканировало», но молча терпело неудачу и не возвращало никаких результатов, если службы определения местоположения не были включены на телефоне, а разрешения на определение местоположения / определения местоположения все еще были в манифесте.