Saaalve a tutti di nuovo.
Questa volta ho un problema con la bussola e il SensorManager. Ho seguito uno dei tutorial (probabilmente uno dei più letti) per la realtà aumentata, e quello che sto cercando di fare è recuperare il mio azimut (la direzione in cui sta puntando la fotocamera espressa in gradi rispetto al Nord). Questo è il codice preso paro paro dal tutorial:
1//...altro codice
2
3SensorEventListener listener = new SensorEventListener(){
4
5public void onAccuracyChanged(Sensor arg0, int
6{}
7
8public void onSensorChanged(SensorEvent evt)
9{
10float vals[] = evt.values;
11direction = vals[0];
12}
13};
14
15public static SensorManager sensorMan;
16sensorMan = (SensorManager)ctx.getSystemService(Context.SENSOR_SERVICE);
17sensorMan.registerListener(
18listener,
19sensorMan.getDefaultSensor(
20SensorManager.SENSOR_ORIENTATION),
21SensorManager.SENSOR_DELAY_FASTEST);
22//...altro codice
23
Ovviamente il resto è tutto corretto. Questa è la porzione relativa al listener della bussola. Il problema è relativo al valore che il Listener mi ritorna, ovvero il valore dentro vals[0]. Ovunque trovo scritto che il valore al suo interno è già in gradi, mentre i valori che osservo io sono compresi fra -2 e 2 (circa). Pensavo fosse espresso in radianti, ma la cosa non avrebbe comunque senso.
Come posso fare per avere il risultato in gradi? O meglio, in che unità di misura mi ritorna l'azimut?
Grazie