Я сделал устройство, которое контролирует здоровье человека во время сна, и оно подключается к смартфону через BLE.
Он отлично работает с приложением iOS. Но так как режим Doze появился на Android-мире. С этим очень трудно справиться, потому что мое устройство работает во время сна.
Основная особенность заключается в том, что он обнаруживает особую опасность и уведомляет пользователя, пока он спит с устройством. Мне нужно подключение к сети, когда оно происходит.
Многие статьи говорят мне, что я могу использовать сеть даже в режиме доз, если мое приложение находится в белом списке. Но это не кажется правдой после того, как я проверил режим Doze. Я прав?
Я могу гарантировать, что могу найти свое приложение в списках, когда я запускаю
adb shell dumpsys deviceidle
Любые советы помогут мне. Спасибо.
К сожалению, я тестировал с использованием GCM, но он просто пробуждает мое приложение за короткое время. Это означает, что я должен отправить GCM столько, сколько хочу, чтобы он не спал. Я не думаю, что смогу использовать его.
Многие статьи говорят мне, что я могу использовать сеть даже в режиме доз, если мое приложение находится в белом списке. Но это не кажется правдой после того, как я проверил режим Doze. Я прав?
Вы не правы. Одним из ограничений доза, которые сняты, когда ваше приложение включено в белый список, является возможность использовать сеть, когда активна доза.
Приложение, включенное в белый список, может использовать сеть и удерживать частичные блокировки во время Doze и App Standby. Тем не менее, другие ограничения по-прежнему действуют на приложение с белым списком, как и на другие приложения. Например, задания и синхронизация приложений с белыми списками откладываются (на уровне API 23 и ниже), и его обычные аварийные сигналы AlarmManager не срабатывают.
От здесь.
Другими словами: вы должны иметь возможность использовать сеть в дозе, если вы находитесь в белом списке.
Каков наилучший подход, который я могу предпринять, чтобы приложение работало правильно?
Учитывая, что ваше приложение является монитором работоспособности и, следовательно, должно постоянно выполнять свою работу или, по крайней мере, очень регулярно, вы можете поместить функциональность в функцию переднего плана. Наземные услуги не выполняются дозой.
Вы должны знать, что у вас есть веская причина использовать службу переднего плана, так как пользователь знает о них, но я думаю, что у вас есть монитор мониторинга и т.д.
Примечание. Вы должны использовать только службу переднего плана для задач, которые пользователь ожидает, что система будет выполняться немедленно или без перерывов. Такие случаи включают загрузку фотографии в социальные сети или воспроизведение музыки, даже если приложение для музыкального проигрывателя не находится на переднем плане. Вы не должны запускать службу переднего плана просто, чтобы система не определяла, что ваше приложение не работает.
Из здесь.