Ble Beacon Android Oreo и P не выходят из режима ожидания
У меня есть приложение, которое использует Bluetooth Beacons. Когда приложение находится в режиме ожидания, уведомления о близости от Bluetooth-маяков не просыпаются. Только когда я разблокирую телефон, уведомление доставляется. Эта проблема та же для переднего плана или приложения, которое было убито.
1 ответ
Начиная с Android 6.0, режим Doze блокирует любые обратные вызовы сканирования Bluetooth или другие события, включая обнаружение маяка. Я обсуждал эту проблему с инженерами Android Bluetooth во время сеанса на Google I/O 2015. Их позиция заключалась в том, что, поскольку обнаруженное движение выйдет из режима Doze, это не проблема, поскольку телефон обычно не может обнаружить новые маяки Bluetooth, когда он неподвижен и поэтому предположительно в том же месте.
Хотя это верно для большинства случаев использования, есть несколько исключений: (1) В поезде или другом транспортном средстве в одном направлении по прямому пути акселерометр не обнаруживает движение, и телефон может войти в режим ожидания, несмотря на то, что движение и потенциально видят новые маяки. (2) В некоторых случаях реклама на радиобуях строится так, чтобы быть динамичной, поэтому они появляются и исчезают в одном и том же случае. В обеих этих ситуациях устройства Android просто не могут обнаружить новую рекламу маяка, если они находятся в режиме ожидания.
Это неудачное ограничение, которое вы должны просто придумать.