ユーザーが複数のセンサー値を同時に取得してリストビューに表示できる不思議なアプリに取り組んでいます。しかし、残念なことに、加速度計の値をフェッチすることはできませんでした。ジャイロスコープ、磁場、方向など、利用可能なすべてのセンサーを登録するために複数の方法を試しました。加速度計が優先され、毎回起動されるため、値を取得するものはありません。複数のセンサーを同時に登録し、それらからデータを取得して UI を更新する方法はありますか。
mAccelerometerListener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}
@Override
public void onSensorChanged(SensorEvent event) {
Sensor sensor = event.sensor;
//Update UI
}
}
};
mGyroscopeListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) {
//Update Ui
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
mMagnetometerListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
//Update UI
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
if (Config.isSensorPresent(ACCELERATION)) {
//sendMessageToService(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(mAccelerometerListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
}
// Detect whether the device has Gyroscope on it
if (Config.isSensorPresent(GYROSCOPE)) {
//sendMessageToService(Sensor.TYPE_GYROSCOPE);
mSensorManager.registerListener(mGyroscopeListener, mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE), SensorManager.SENSOR_DELAY_GAME);
}
// Detect whether the device has Magnetic Field Sensor
if (Config.isSensorPresent(MAGNETIC_FIELD)) {
//sendMessageToService(Sensor.TYPE_MAGNETIC_FIELD);
mSensorManager.registerListener(mMagnetometerListener, mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME);
}
これは、それらすべてを同時に更新するわけではないようです。一体、それは他のセンサータイプを起動しません。
Is there a way to retrieve multiple sensor data in Android で提案されている方法を試しました。私にはうまくいきません。