Я программирую приложение, которое должно получать данные от датчика акселерометра.
Я перезаписал функции onAccuracyChanged () и onSensorChanged ().Предполагается, что эти функции вызываются только при изменении точности или значений датчика, но в моем случае они меняются много раз в секунду и всегда возвращают одни и те же значения.
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
if(sensor.getType()==Sensor.TYPE_ACCELEROMETER){
Log.d(TAG, "Accuracy has changed: "+accuracy);
}
}
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_Y];
z = event.values[SensorManager.DATA_Z];
Log.d(TAG, "Sensor changed: "+ event.accuracy+", "+x+", "+y+", "+z);
}
}
Это раздражает, нотакже раздражает, что точность всегда равна 0 (SensorManager.SENSOR_STATUS_UNRELIABLE), поэтому я не могу доверять этому.
Что может происходить?Устройство Samsung Galaxy S, поэтому в нем есть акселерометр.
Спасибо!