В Android я могу программно определить, что компас еще не откалиброван?

Я обнаружил, что когда я запускаю свою игру, компас часто из-за удара. Объекты будут летать и не быть там, где они должны быть. Но, если я переведу телефон на восьмерке (или просто размахиваю кругом в случайных направлениях), все защелкнется на месте, возможно, через полминуты.

Знает ли оборудование, когда компас не откалиброван? Было бы возможно, чтобы я обнаружил это и вытащил сообщение, сообщающее пользователю: «Ваш компас вашего Android должен быть откалиброван. Пожалуйста, переместите телефон вокруг горизонтальной фигуры восемь, пока это сообщение не исчезнет».

Solutions Collecting From Web of "В 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