mon application android montre la direction d'un endroit particulier dans le monde et donc dans les besoins d'obtenir le degré de la boussole.
Ceci est le code que je l'ai utilisé pour calculer les degrés:Comment faire une boussole précise sur Android
public void getDirection() {
mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
if(mySensors.size() > 0){
mySensorManager.registerListener(mySensorEventListener, mySensors.get(0), SensorManager.SENSOR_DELAY_UI);
}
else{
TextView alert = (TextView)findViewById(R.id.instruct);
alert.setText(getString(R.string.direction_not_found));
myCompassView.setVisibility(myCompassView.INVISIBLE);
}
}
private SensorEventListener mySensorEventListener = new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
compassBearing = (float)event.values[0];
float bearing;
bearing = compassBearing - templeBearing;
if (bearing < 0)
bearing = 360 + bearing;
myCompassView.updateDirection(bearing);
}
};
Cette méthode fonctionne habituellement, mais parfois, il devient juste le mauvais Nord, que dois-je faire pour obtenir un emplacement plus précis?
Ce serait une bonne question à ajouter à la nouvelle proposition http://area51.stackexchange.com/proposals/102228/virtual-and-augmented-reality StackExchange. – SashaZd