Ich versuche, die Bewegung des Geräts nur in vertikaler Richtung, d. H. Aufwärts- und Abwärtsbewegung, zu verfolgen. Dies sollte unabhängig von der Ausrichtung des Geräts sein. Dinge, die ich bereits kennen oder versucht haben, sind dieseLineare Beschleunigungsrichtung, um die Aufwärts- und Abwärtsbewegung des Telefons zu verfolgen
Lineare Beschleunigung durch den Sensor TYPE_LINEAR_ACCELERATION gegeben ist und die Achsen ist die Telefon Achsen und daher keine besonderen Achsen-Tracking macht keinen Unterschied.
Ich habe versucht, Transponieren oder Kehrwert des Rotationsvektors (inverse oder transponieren für den Rotationsvektor sind die gleichen) und dann versucht, die Z-Richtung des linearen Beschleunigungsvektors zu verfolgen. Scheint nicht zu helfen.
Ich versuche ein Skalarprodukt mit Gravitationswerten (TYPE_GRAVITY) zu erstellen, um die Richtung der Beschleunigung zu erhalten, aber es scheint fehleranfällig zu sein. Selbst wenn ich mein Gerät schnell hochfahre, sagt es, dass es nach unten geht.
Ich werde skizzieren diese Methode hier
dotProduct = vectorA[0]*vectorB[0]+vectorA[1]*vectorB[1] + vectorA[2]*vectorB[2];
cosineVal = dotProduct/(|vectorA|*|vectorB|)
if(cosineVal > 0) down else Up.
Was ist der Fehler mit der Methode? Bitte helfen Sie mir, ich bin seit einiger Zeit daran fest.