Android Wear - как (если возможно) заставить процессор не спать в обычном режиме?

С новым добавлением «всегда включенного» API в недавнем обновлении с Android Wear, естественно, я пытаюсь включить его в свое фитнес-приложение. После прочтения веб-сайта разработчиков Android кажется, что единственный способ разбудить процессор в режиме окружающей среды - это использовать диспетчер аварийных сигналов. Однако этот метод не очень последовательный или точный.

1) Если будильник настроен на пробуждение процессора и изменение времени на экране через 3 секунды, он колеблется в пределах 5-10 секунд.

2) В большинстве случаев метод onEnterAmbient () даже не вызывается примерно через минуту после перехода в режим окружающей среды (обработчик все еще работает и обновляет экран с нормальной частотой)

3) В целом, если кто-нибудь знает другой способ вывода обновлений на экран в режиме окружающей среды, это было бы фантастически! (В основном я считаю, что есть другой способ из-за того, что циферблаты могут обновлять и отображать анимацию каждую секунду в режиме окружающей среды)


person Kyle Petryszak    schedule 21.08.2015    source источник


Ответы (1)


Вы можете поддерживать работу процессора в режиме окружающей среды, используя блокировку пробуждения:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "awake");
wl.acquire(30000);  // with 30s timeout or manually via wl.acquire() wl.release()

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

person dunqan    schedule 27.10.2015
comment
Я ценю вашу помощь! Я знаю о возможном разряде батареи, я просто пытаюсь поддерживать работу службы GPS так же, как вы можете на телефоне (запущенное приложение / музыкальное приложение все еще работают, я пытаюсь сделать это с помощью смотреть). - person Kyle Petryszak; 27.10.2015