Начиная с Android 6.0, Режим ожидания блокирует любые обратные вызовы сканирования Bluetooth или другие события, включая обнаружение маяков. Я обсуждал эту проблему с инженерами Android Bluetooth во время сеанса на Google I / O 2015. Их позиция былаэто потому, что обнаруженное движение выйдет из режима ожидания, это не проблема, так как телефон, как правило, не может обнаружить новые маяки Bluetooth, когда он неподвижен и, следовательно, предположительно, в том же месте.
Хотя это верно для большинства случаев использования, есть несколько исключений: (1) В поезде или другом транспортном средстве в одном направлении по прямому пути, акселерометр не обнаруживает движение, и телефон можетидите в Дозу, несмотря на то, что находитесь в движении и потенциально видите новые маяки.(2) В некоторых случаях реклама на радиобуях строится так, чтобы быть динамичной, поэтому они появляются и исчезают в одном и том же случае.В обеих этих ситуациях устройства Android просто не могут обнаружить новые рекламные сигналы маяка, если они находятся в режиме Doze.
Это прискорбное ограничение, которое вы должны просто разработать вокруг.
РЕДАКТИРОВАТЬ: Начиная с Android 7 существует два типа режима Doze, тяжелый и легкий.Режим легкого сна включается, когда экран выключен, но телефон не неподвижен.Режим тяжелой дозы включается, когда экран выключен, и устройство некоторое время не двигается.В режиме легкой дозы обнаружение маяка осуществляется нормально.В режиме тяжелой дозы они не должны быть в соответствии с Google.Тем не менее, на некоторых устройствах они делают.Я вижу их в режиме тяжелой дозы на Samsung Galaxy S8 с Android 8.0 с запущенным сервисом переднего плана.