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

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


person Dim    schedule 11.07.2018    source источник


Ответы (2)


Информация Google:

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

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

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

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

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

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

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

person ygngy    schedule 20.07.2018

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

person Davide Cannizzo    schedule 21.07.2018