2016-03-01 38 views
0

我目前在我们的Android和iOS应用程序中集成了一个Compass View。正如所料,传感器值并不总是完美的。这并不是一个大问题,但如果传感器不准确,可以警告用户。那么有什么方法可以确定传感器的精度是否低?查找指南针传感器的精度是否较低

回答

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 

我不知道怎么做,在iOS虽然。

该信息也可用于在onSensorChanged中收到的每个SensorEvent。

0

在iOS中,每次更新都会提供传感器准确度。 A headingAccuracy < 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!"); 
    } 
}