BroadcastReciver перестанет работать на Xiaomi через пару часов

Я использую Awareness API для своего проекта и получаю действия через BroadcastReciver, Это вопрос с моим кодом: ссылка. Проблема в том, что все отлично работает во всех версиях Android, кроме устройств Xiaomi. куда BroadcastReciver ничего не получаю через пару часов. Я пробовал много решений для этого (например, это и это и отключение экономии батареи для моего приложения), но, похоже, ничего не работает.

2 ответа

Решение

Google Awareness:

При этом API сортирует данные из нескольких источников, чтобы обеспечить точность и высокое качество предоставляемых данных. Он также учитывает как энергопотребление, так и потребление памяти при доступе к этим сигналам, помогая гарантировать, что время автономной работы и использование памяти нашими приложениями не окажут вредного воздействия на пользовательское устройство.

Как говорится в этом абзаце:

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

и вы говорите:

Проблема в том, что все отлично работает во всех версиях Android, кроме устройств Xiaomi. Где BroadcastReciver ничего не получает через пару часов

через пару часов устройство может сэкономить больше энергии

Вы ожидаете, что "Fence API" зарегистрирует изменения в текущей среде пользователя, в которой он может потреблять энергию, и, таким образом, вы не получаете широковещательные сообщения. Возможно, вам придется изменить настройки устройства, чтобы разрешить использование датчиков, таких как GPS местоположения и другие соответствующие датчики.

Я думаю, что ваша проблема заключается в оптимизации батареи. Эта функция доступна начиная с Android Marshmallow, который представил режим Doze. Это способ снижения потребления батареи для фоновых приложений, но в вашем случае вы должны отключить его для своего приложения.

Другие вопросы по тегам