У меня есть код, который расширяет сервис и регистрирует показания датчика акселерометра SensorEvent (SensorEvent) на Android. Я хотел бы иметь возможность записывать эти показания датчиков, даже когда устройство выключено (я осторожно работаю от батареи, и это стало очевидным, когда оно работает). Пока экран работает на отлично работает на 2.0.1 Motorola Droid и 2.1 Nexus One.
Однако, когда телефон перейдет в спящий режим (нажав кнопку питания), экран выключится и события onSensorChanged
прекратятся доставляются (проверяется с помощью сообщения Log.e, которое вызывается каждые N раз onSensorChanged
).
Служба получает wakeLock, чтобы гарантировать, что она будет работать в фоновом режиме; но, похоже, это не имеет никакого эффекта. Я пробовал все различные PowerManager. блокировки, но ни один из них не имеет значения.
_WakeLock = _PowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
_WakeLock.acquire();
Были противоречивые сообщения о том, действительно ли вы можете получать данные от датчиков, пока экран выключен... у кого-нибудь есть опыт с этим в более современной версии Android (Eclair) и аппаратного обеспечения?
Это, по-видимому, указывает на то, что он работал в Cupcake: http://groups.google.com/group/android-developers/msg/a616773b12c2d9e5
PS: Точный же код работает так, как предполагалось в 1.5 на G1. Ведение журнала продолжается, когда экран выключается, когда приложение находится в фоновом режиме и т.д.