1

Я devoloping приложение, которое также использует фоновое сканирование. См. Using AltBeacon: start and stop scanning from app settingsAltBeacon продолжает сканирование после остановки Bluetooth

Я наблюдал странное поведение. Когда я останавливаю Bluetooth из настроек устройства, приложение продолжает сканирование и вызывает didEnterRegion и didExitRegion. Символ Bluetooth на панели уведомлений исчез. Я также вижу в logcat D/BluetoothLeScanner: onScanResult() ... записи.

Как это может быть?

+0

Неужели он когда-либо обнаружил маяки в этих условиях? – davidgyoung

+0

Да, но это странно. Он вызывает поочередно didEnterRegion и didExitRegion. Я еще раз проверю и отправлю отчет. – egmontr

+0

Я тестировал снова и да, он обнаруживает маяки в этих условиях. – egmontr

ответ

1

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

EDIT: на основе отзывов в комментариях звучит так, как некоторые модели Samsung S3 сохраняют доступ к Bluetooth для приложений, если он был включен до или в течение времени, когда приложение было активным. Даже если вы отключите Bluetooth в пользовательском интерфейсе системы, он останется включенным для всех работающих приложений, несмотря на то, что говорит пользовательский интерфейс. Другие приложения, запущенные после отключения Bluetooth, ведут себя так, как будто это действительно отключено.

Одним из способов подтверждения этого является включение устройства в это состояние, а затем запуск Locate app for Android. Это приложение представит пользователю диалоговое окно с сообщением о включении Bluetooth, если оно отключено при запуске приложения. Этот тест даст независимое подтверждение того, действительно ли Bluetooth отключен, независимо от того, что сообщает пользовательский интерфейс настроек.

В дополнение к комментариям по результатам вышеуказанного теста было бы очень полезно узнать номер модели устройства, версию Android и номер сборки, все из которых доступны в разделе «Настройки»> «О телефоне».

Полное описание: Я ведущий разработчик проекта Android Beacon Library.

+0

Да, приложение Locate просит включить Bluetooth. Я тестировал устройство Samsung S4, Android 5.0.1 с номером сборки LRX22C.I9505XXUHOJ2. – egmontr

+0

У меня была та же проблема с Galaxy S5. После запуска дальнобойных маяков Android не отключил Bluetooth (пользовательский интерфейс говорил, что он выключен). Насколько я помню, эта проблема возникла после того, как я обновил Android от KitKat до Lollipop. Кроме того, у меня не было той же проблемы с LG G2 и G3 при тестировании того же приложения. Таким образом, эта проблема может быть связана с прошивкой или драйвером Samsung. –