Ich habe einige Code, der einen Service erweitert und erfasst OnSensorChanged (SensorEvent Ereignis) Beschleunigungssensor-Messwerte auf Android. Ich würde gerne in der Lage sein, diese Sensorwerte auch dann aufzuzeichnen, wenn das Gerät ausgeschaltet ist (ich bin vorsichtig mit der Batterielebensdauer und es wird offensichtlich, wenn es läuft). Während der Bildschirm läuft, funktioniert das Logging auf einem Motorola Droid 2.0.1 und einem 2.1 Nexus One.Accelerometer stoppt die Lieferung von Proben, wenn der Bildschirm ausgeschaltet ist Droid/Nexus One sogar mit einem WakeLock
Wenn das Telefon jedoch in den Ruhezustand wechselt (durch Drücken des Netzschalters), wird der Bildschirm ausgeschaltet und die onSensorChanged
Ereignisse werden nicht mehr gesendet (verifiziert durch Verwendung einer Log.e-Nachricht alle N Male wird aufgerufen).
Der Dienst erwirbt einen wakeLock, um sicherzustellen, dass er im Hintergrund läuft. aber es scheint keine Wirkung zu haben. Ich habe alle verschiedenen PowerManager ausprobiert. Wake Locks, aber keiner von ihnen scheint eine Rolle zu spielen.
_WakeLock = _PowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
_WakeLock.acquire();
Es gibt widersprüchliche Berichte gewesen darüber, ob oder nicht, können Sie tatsächlich Daten von den Sensoren erhalten, während der Bildschirm ausgeschaltet ist ... jemand mit dieser keine Erfahrung auf eine modernere Version von Android (Eclair) und Hardware ?
Dies scheint darauf hinzudeuten, dass es in Cupcake arbeitet: http://groups.google.com/group/android-developers/msg/a616773b12c2d9e5
PS: Der exakt gleiche Code in 1.5 auf einem G1 wie vorgesehen funktioniert. Die Protokollierung wird fortgesetzt, wenn sich der Bildschirm ausschaltet, wenn sich die Anwendung im Hintergrund befindet usw.
Spur dieses Problem hier: http://code.google.com/p/android/issues/detail?id= 3708 –
Ich habe die Antwort unten mit einer Problemumgehung, die wir gefunden haben, scheint auf den Motorola 2.0.1 Geräten wirksam. Ich werde auch melden, sobald 2.1 zur Verfügung steht, was sich auf das Problem auswirkt. – mylock
Neuer Tracker für dieses Problem - immer noch in 2.2 integriert - http://code.google.com/p/android/issues/detail?id = 11028 – Artem