Ich entwickle eine Anwendung, in der ich die Genauigkeit von 2 Sensortyp Daten wissen müssen, die TYPE_ACCELEROMETER und TYPE_MAGNETIC_FIELD sind. Ich habe wie nach den SensorEventListener
auf beiden Sensortypen registriert:onAccuraryChanged() wird nicht mit mehreren Sensortypen zurückgerufen
mSensorManager.registerListener(mSensorEventListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL, SensorManager.SENSOR_DELAY_UI);
mSensorManager.registerListener(mSensorEventListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_NORMAL, SensorManager.SENSOR_DELAY_UI);
Dann in meinen Zuhörern, ich habe so etwas wie:
@Override public void onAccuracyChanged(Sensor sensor, int i) {
switch (sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
if (i == SensorManager.SENSOR_STATUS_ACCURACY_HIGH) {
.....
}
break;
case Sensor.TYPE_MAGNETIC_FIELD:
if (i == SensorManager.SENSOR_STATUS_ACCURACY_HIGH) {
.....
}
break;
}
}
jedoch aus irgendeinem Grunde, wenn es wieder aufgerufen wird, die sensor.getType()
ist immer TYPE_ACCELEROMETER
, ich habe noch nie einen bekommen .... Verwende ich diesen Rückruf? Schätzen Sie irgendwelche Vorschläge.
Ich kann tatsächlich beid Sensoren Informationen erhalten, in 'onSensorChanged()' zurückrufen, nur die "onAccuracyChanged" ist problematisch. – JohnLXiang