Android: Alternative zu Onsensorchanged? Keine Beschleunigungsmesserdaten, wenn das Telefon auf einem Tisch auf dem Rücken liegt (wenn keine Bewegung)

StackOverflow https://stackoverflow.com/questions/5804142

Frage

Daher verwende ich diesen Code, um die Beschleunigungsmesserdaten zu erhalten. Wenn ich im DDMS -Modus bin, um zu überprüfen, was meine Druckanweisung druckt, bemerkte ich, dass nichts gedruckt wird, wenn sich das Telefon nicht bewegt. dh. es ist auf dem Tisch. Ich denke, der Grund dafür ist, dass OnsensorChanged nicht aufgerufen wird, wenn sich das Telefon nicht bewegt, und dann wird es aufgerufen, wenn sich das Telefon wieder bewegt. Wenn ich Daten erfassen möchte, unabhängig davon, ob sich das Telefon bewegt oder nicht, sollte ich eine andere Funktion verwenden? Irgendwelche Alternativen? oder irgendeine Lösung? Jeder hilft, geschätzt zu werden.

Vielen Dank!

public void onSensorChanged(SensorEvent event) {  

    StringBuffer buff = new StringBuffer();
    buff.append(String.valueOf(event.timestamp));
    buff.append(comma);
    buff.append(String.valueOf(event.values[0]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[1]));
    buff.append(comma);
    buff.append(String.valueOf(event.values[2]));

    mCurrentFile.println(buff.toString());
    mCurrentFile.write(buff.toString()+ '\n');

    System.out.println( "**" + buff.toString());

}
War es hilfreich?

Lösung

Sie können einen Thread auf die Sensoränderungen anhören (dh,, onSensorChanged() Dadurch wird die Daten in globale Variablen geschrieben) und ein weiterer Thread, der einen Timer ausführt (sieh dir an postDelayed, http://developer.android.com/reference/android/os/handler.html) Das wird es in festgelegten Zeiten lesen. Wenn es keine Änderungen gibt, wird dieselben Daten erneut gelesen. Einfach, sauber und schön zur Batterie.

Andere Tipps

Wenn diese Methode nur dann aufgerufen wird, wenn "der Sensor ändert", speichern Sie die Werte, die Sie beim Ausführen gelesen haben. Wenn die Methode nicht nennt, heißt das nicht, dass die Werte gleich sind?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top