2016-03-01 2 views
0

В настоящее время я интегрирую Compass View в наше приложение для Android и iOS. Как и ожидалось, значения датчика не всегда идеальны. Это не большая проблема, но было бы неплохо предупредить пользователя, если датчики неточны. Так есть ли способ выяснить, имеют ли датчики низкую точность?Вывод, если датчики компаса имеют низкую точность

ответ

1

На Android в SensorEventListener есть функция onAccuracyChanged(Sensor sensor, int accuracy), в которой вы можете проверить точность магнитометра устройства. Есть 4 уровня точности (см SensorManager класс):

SENSOR_STATUS_ACCURACY_HIGH = 3 
SENSOR_STATUS_ACCURACY_MEDIUM = 2 
SENSOR_STATUS_ACCURACY_LOW = 1 
SENSOR_STATUS_UNRELIABLE = 0 

Я не знаю, как сделать это на КСН, хотя.

Эта информация также доступна для каждого датчика SensorEvent, полученного в onSensorChanged.

0

В iOS точность каждого датчика предоставляется с каждым обновлением. Заголовок Accuracy < 0 означает, что значение неверно. Если оно> 0, оно указывает максимальное отклонение между значением и истинным значением, и можно определить порог.

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading { 
    NSLog(@"LocationManager did update Heading with accuracy %g", newHeading.headingAccuracy); 
    if(newHeading.headingAccuracy < 0) { 
     NSLog(@"Invalid value!"); 
    } else if(newHeading.headingAccuracy > ACCURACY_THRESHOLD) { 
     NSLog(@"Low Accuracy!"); 
    } 
} 
Смежные вопросы