Sto provando a seguire il movimento del dispositivo solo sulla direzione verticale, cioè verso l'alto e verso il basso. Questo dovrebbe essere indipendentemente dall'orientamento del dispositivo. Cose che so già o provato sono questiDirezione di accelerazione lineare per tracciare il movimento verso l'alto e il basso del telefono
accelerazione lineare è dato dal sensore TYPE_LINEAR_ACCELERATION e gli assi sono gli assi del telefono e quindi il monitoraggio qualsiasi asse particolare non fa differenza.
Ho provato ad applicare la trasposizione o l'inverso del vettore di rotazione (inverso o trasposto per il vettore di rotazione sono gli stessi) e quindi ho cercato di tracciare la direzione z del vettore di accelerazione lineare. Non sembra aiutare.
Sto provando a fare un prodotto punto con valori di gravità (TYPE_GRAVITY) per ottenere la direzione dell'accelerazione, ma sembra essere soggetto a errori. Anche quando sposto il mio dispositivo rapidamente, dice che sta andando giù.
illustrerà questo metodo qui
dotProduct = vectorA[0]*vectorB[0]+vectorA[1]*vectorB[1] + vectorA[2]*vectorB[2];
cosineVal = dotProduct/(|vectorA|*|vectorB|)
if(cosineVal > 0) down else Up.
Qual è il difetto con il metodo? Per favore aiuto, sono stato bloccato su questo per un po 'di tempo.