В Android я могу программно определить, что компас еще не откалиброван?
Я обнаружил, что когда я запускаю свою игру, компас часто из-за удара. Объекты будут летать и не быть там, где они должны быть. Но, если я переведу телефон на восьмерке (или просто размахиваю кругом в случайных направлениях), все защелкнется на месте, возможно, через полминуты.
Знает ли оборудование, когда компас не откалиброван? Было бы возможно, чтобы я обнаружил это и вытащил сообщение, сообщающее пользователю: "Ваш компас должен быть откалиброван. Пожалуйста, переместите телефон вокруг горизонтальной фигуры восемь, пока это сообщение не исчезнет".
Ответы
Ответ 1
В 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