Итак, немного предыстории, я разрабатываю приложение для отслеживания местоположения. У меня есть служба, которая получает обновления GPS, используя поставщика плавких местоположений. Когда приложение закрывается или устройство заблокировано, моя служба перемещается на передний план. Он также использует частичную блокировку пробуждения и внесен в белый список.
У меня сложилось впечатление, что устройство должно выйти из спящего режима, если оно движется. Как указано в этом ответе здесь. Однако я вижу противоречивые результаты на разных устройствах. У меня есть три тестовых устройства. Sony Experia, Moto E4 Plus и Nexus 5x. Приложение отлично работает на сони и нексусе. Я оставляю его бездействующим, включается режим ожидания, а затем, когда я перемещаю устройство, он выходит из режима ожидания, и обновления GPS начинаются снова. Это здорово, потому что мне не нужны обновления GPS, когда устройство находится в стационарном состоянии, это просто потратит заряд батареи. Просто для ясности разные версии Android для каждого устройства:
Sony Xperia: 7.0
Moto E4 plus: 7.1.1
Nexus 5X: 8.0
Проблема с мото, я оставляю устройство, чтобы перейти в режим сна. Однако, подняв его и двигаясь вместе с ним, он не выходит из спящего режима. Он выходит из режима ожидания только при некотором взаимодействии с пользователем. После просмотра других ответов и документации по андроидам я прав, предполагая, что перемещение устройства всегда должно приводить к тому, что оно находится в спящем режиме. Если это так, то это, скорее всего, проблема с оборудованием, или OEM-производитель может изменить способ работы режима ожидания?
Спасибо за любую помощь.