Android Обходной путь для нерабочих датчиков при выключенном экране - PullRequest
7 голосов
/ 21 июля 2011

[Редактировать: удалены все упоминания о версии Android - проблема присутствует на всех версиях Android]

Справочная информация. Когда экран выключен, многие телефоны Android не предоставляют обновления приложений показаний акселерометра, вызывая onSensorChanged (), когда экран выключен. Такое поведение обсуждается на S.O. и далее документировано здесь http://code.google.com/p/android/issues/detail?id=3708

На некоторых телефонах (Nexus S, Droid X2, ...) значения акселерометра предоставляются только при значительном изменении значения. Например, сидя на столе неподвижно, в минуту может быть одно или ноль обновлений

Чтобы создать код, надежный для всех моделей телефонов, как мне различать отсутствие событий обновления при отключенном экране и отсутствие обновлений при отсутствии движения? Нужно ли вести базу данных моделей телефонов?

Ответы [ 2 ]

0 голосов
/ 22 августа 2012

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

В этом посте здесь , Бруно Альбукерке есть кое-что, что может помочь с телефонами Motorola, но это не универсально.

Я считаю, что @jjNford прав, что у производителей есть палецпо этому поводу, можете ли вы опубликовать какую-либо информацию об этом?

Здесь - отчет об ошибке, датированный 2009

0 голосов
/ 02 марта 2012

Это будет трудно обнаружить. Android API предоставляет способ управления Wake Lock. Но производители сделали ужасную работу по внедрению этого в ОС на своей стороне. Просто ужасно. Вам нужно было бы захватить PARTIAL_WAKE_LOCK, чтобы поддерживать работоспособность процессора телефона при выключенном экране.

Однако не все устройства используют это и не будут отвечать - некоторые наполовину / наполовину отвечают - а некоторые отвечают отлично.

После прочтения комментариев выше я могу сказать вам, что большинство устройств с 2.3+, которые я использовал, все еще не реализуют частичную блокировку пробуждения.

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

Надеюсь, это поможет.

...