هل هناك طريقة لاسترداد بيانات المستشعر المتعددة في Android
-
30-09-2019 - |
سؤال
أحاول الحصول على كل من بيانات التسارع والاتجاه. حاليا ، قمت بإنشاء مسرع و excedationManager. كلاهما تفعل الشيء نفسه؛ قم بتنفيذ SensoreventListener واسترداد البيانات من القيم [] في مستمعي OnSensorChanged ().
هل هناك طريقة أسهل لعمل هذا الشيء؟ يبدو أن امتلاك اثنين من المعالجات مع رمز مكرر غير ضروري. هل هناك طريقة للوصول إلى قيم [] صفيف مع بيانات التسارع المدمجة وبيانات الاتجاه معًا؟
بسبب المعالجتين ، يجب أيضًا القيام بذلك:
orientationManager = new OrientationManager(this);
orientationSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
orientationSensorManager.registerListener(orientationManager,
orientationSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
accelerometerManager = new AccelerometerManager(this);
accelerometerSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerometerSensorManager.registerListener(accelerometerManager,
orientationSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_GAME);
المحلول
هل يمكنك تجربة شيء مثل هذا:
private SensorManager mSensorManager;
private SensorEventListener mSensorListener;
////
mSensorManager = (SensorManager) this
.getSystemService(Context.SENSOR_SERVICE);
mSensorListener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}
@Override
public void onSensorChanged(SensorEvent event) {
Sensor sensor = event.sensor;
if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
//TODO: get values
}else if (sensor.getType() == Sensor.TYPE_ORIENTATION) {
//TODO: get values
}
}
}
mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME);
لا تنتمي إلى StackOverflow