Pracuję nad prostą aplikacją typu kompas dla systemu Android, testując na Xoom WiFi. Dokładność odczytów przyspieszeniomierza zawsze wynosi SensorManager.SENSOR_STATUS_UNRELIABLE
. Odczyty pola magnetycznego zawsze mają dokładność SensorManager.SENSOR_STATUS_ACCURACY_HIGH
. Czy to może być błąd w Xoom, czy też jest jakiś problem w moim kodzie?Dokładność dokładności przyrządów akcelerometrowych Xoom jest zawsze zawodna
onCreate:
mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
accelGravitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
magSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
onResume:
mSensorManager.registerListener(accelListener, accelGravitySensor, SensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.registerListener(magListener, magSensor, SensorManager.SENSOR_DELAY_NORMAL);
private final SensorEventListener accelListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
Log.d(TAG, "accel (" + event.values[0] + ", " + event.values[1] + ", " + event.values[2] + ") accuracy=" + accuracyTag(event.accuracy));
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};