SensorManager: диапазон магнитного поля - PullRequest
2 голосов
/ 19 февраля 2012

Я ищу часы, но не могу найти пример или определение диапазона датчика магнитного поля

И .. ссылки говорит:

MAGNETIC_FIELD_EARTH_MIN : 30.0 
MAGNETIC_FIELD_EARTH_MAX : 60.0

Мой датчик определяет значения <0 ... Я на Луне? ;) </p>

Спасибо!

Ответы [ 3 ]

4 голосов
/ 01 января 2013

Вы не можете получить отрицательную магнитную (общую) мощность.отрицательные значения показывают положения магнитного поля в соответствии с осями x, y, z.

для расчета общей мощности магнита, которую вы должны использовать:

double teslaXYZ = Math.sqrt((magnetX*magnetX)+(magnetY*magnetY)+(magnetZ*magnetZ));

это значение минимально равно 0 нт, а максимальное равно 200 нт.до 70 нт зависит от того, где вы находитесь на земле ..

4 голосов
/ 07 ноября 2013

, чтобы получить силу магнитного поля, вы должны получить значения магнитного поля 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;
        }                
    }
}
0 голосов
/ 19 сентября 2012

вы можете найти ответ здесь: http://code.google.com/p/openintents/wiki/SensorSimulator для всех датчиков

В любом случае, нет максимального значения для самого магнитного поля, поэтому максимальный диапазон должен быть определен устройством.проверить документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...