Ich habe eine App für Android Wear entwickelt, die die Bewegungssensor (Beschleunigungssensor) kontinuierlich für eine Stunde oder so für Datenerfassungszwecke zu messen. Während des Betriebs hatte ich Probleme damit, dass das Gerät in den Umgebungsmodus (oder Schlafmodus) wechselte und die Sensoren verlangsamte (oder abschaltete). Als Ergebnis verwende ich den folgenden Befehl, um den Bildschirm zu sperren und es scheint zu funktionieren. Aber es scheint auch verschwenderisch, da ich den Bildschirm eigentlich nicht brauche, nur die Sensoren laufen.Android Wear: Messung von Sensoren und Verhinderung von Umgebungsmodus/Schlaf
getWindow(). ClearFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // Erlaube, schlafen zu gehen
Natürlich habe ich die onSensorsChanged() Methode in der Hauptaktivität. Ich bin bereit, es in einen Dienst zu stellen, aber von dem, was ich verstehe, wird es nicht helfen, wenn es immer noch im Haupt-UI-Thread ist. Ich könnte es in einen eigenen Thread setzen, aber ich bin mir nicht sicher, dass das den Ambient Mode davon abhalten wird, die Sensoren zu verlangsamen. Fragen: 1) Gibt es einen Weg, um den Umgebungsmodus zu verhindern? Oder wenn erkannt wird, es auszuschalten? 2) Wenn die Sensoren in ihrem eigenen Dienst/Thread sind, kann ich die Aktivität in den Ruhezustand versetzen und trotzdem die Sensorerfassung bei voller Geschwindigkeit aufrechterhalten? 3) Wenn die Sensoren in ihrem eigenen Dienst/Thread sind, kann ich noch Daten über die Datenleitung an das Telefon senden? Danke.
PowerManager.PARTIAL_WAKE_LOCK stoppt nicht, dass die Uhr in den Umgebungsmodus wechselt, stoppt jedoch die CPU. Also ist es das, was er will, nur falsch formuliert. –
@CraigJ danke, ich habe die Beschreibung geklärt. – String