Altbeacon не может найти маяки на Samsung S8, когда местоположение отключено с 2.16.2 - PullRequest
0 голосов
/ 27 января 2020

Я создаю Android приложение, которое сканирует два типа маяка каждую секунду, используя android -beacon-library:

  • Тип iBeacon
  • пользовательский тип маяка

Я использую библиотеку начиная с версии 2.10, и все работает нормально.

Но, когда я пытаюсь реализовать версии 2.16.2, 2.16.3 и 2.16.4 на моем Samsung S8 (работает на Android 9), я не могу сканировать свои маяки, когда выключаю местоположение. У меня не было этой проблемы с версией 2.16.1.

Я также попробовал справочное приложение , чтобы проверить, не сделал ли я что-то не так, но у меня та же ошибка с эталонным приложением.

Могу указать, что у меня проблема только с Samsung.

Спасибо.

1 Ответ

1 голос
/ 28 января 2020

В последних версиях Android требуется несколько уровней авторизации местоположения для приложения для обнаружения маяков ( выделенные жирным шрифтом показать добавленные требования):

SDK 29+ (Android 10.0 +)

  • Bluetooth должен быть включен в настройках
  • Местоположение должно быть включено в настройках
  • Приложения должны иметь разрешение FINE_LOCATION в манифесте (COARSE_LOCATION больше не достаточно)
  • Приложения должны ACCESS_BACKGROUND_LOCATION в манифесте для обнаружения маяков, когда приложение не на переднем плане с включенным экраном.
  • Приложения должны иметь динамически полученное разрешение FINE_LOCATION от пользователя
  • Приложения должны иметь разрешения BLUETOOTH и BLUETOOTH_ADMIN в манифесте

SDK 23-28 (Android 6.0 -9.x)

  • Bluetooth должен быть включен в настройках
  • Расположение должно быть включено в настройках
  • Приложения должен иметь разрешение COARSE_LOCATION или разрешение FINE_LOCATION в манифесте
  • Приложения должны иметь разрешения BLUETOOTH и BLUETOOTH_ADMIN в манифесте
  • Приложения должны динамически получать разрешение COARSE_LOCATION или разрешение FINE_LOCATION от пользователя

SDK 18-22 (Android 4.3- Android 5.x)

  • Bluetooth должен быть включен в настройках
  • Приложения должны иметь разрешение COARSE_LOCATION или разрешение FINE_LOCATION в манифесте
  • Приложения должны иметь разрешение BLUETOOTH и BLUETOOTH_ADMIN в манифесте

Указанные выше ограничения не имеют отношения к c Android Beacon Library - это требование операционной системы для любого обнаружения Bluetooth LE. Если вы видите, что некоторые устройства не соблюдают эти требования при определенных условиях, то это, скорее всего, дыра в реализации на указанной платформе c. Более общие правила все еще применяются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...