, чтобы получить силу магнитного поля, вы должны получить значения магнитного поля x, y, z (из Sensor.TYPE_MAGNETIC_FIELD) и применить следующую формулу:
double magnetic_field_strength = Math.sqrt( (Xvalue*Xvalue) + (Yvalue*Yvalue) + (Zvalue*Zvalue) );
Magnetic_field_strength фактически выражается в микротесла (мкТл) , а не в нанотесле (нТл), как было предложено в предыдущем ответе
Можно отметить, что средняя напряженность магнитного поля Земли составляет 50 мкТл, сообщает этот сайт .
Таким образом, возможный код будет:
private SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_MAGNETIC_FIELD:
magnetic_field_strength = Math.sqrt((event.values[0]*event.values[0])+(event.values[1]*event.values[1])+(event.values[2]*event.values[2]));
break;
default:
return;
}
}
}