Android:一个传感器,多个传感器evnt监听器

Android:一个传感器,多个传感器evnt监听器,android,sensors,android-sensors,Android,Sensors,Android Sensors,我知道在Android中,可以在不同的传感器上注册相同的传感器事件监听器,但我的问题是:是否可以在同一传感器上注册多个传感器事件监听器?谢谢 SensorDataLogger sensorDataLogger = new SensorDataLogger(); GaitRecognition gaitRecognition = new GaitRecognition(); sensorManager.registerListener(sensorDataLogger, sen

我知道在Android中,可以在不同的传感器上注册相同的传感器事件监听器,但我的问题是:是否可以在同一传感器上注册多个传感器事件监听器?谢谢

 SensorDataLogger sensorDataLogger = new SensorDataLogger();
    GaitRecognition gaitRecognition = new GaitRecognition();

    sensorManager.registerListener(sensorDataLogger, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
    sensorManager.registerListener(gaitRecognition, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);

    new Thread(sensorDataLogger).start();
    new Thread(gaitRecognition).start();
SensorDataLogger和GaitRecognition都实现Runnable和SensorEventListener

这是传感器数据记录器类:

public class SensorDataLogger implements Runnable, SensorEventListener {

long lastUpdate ;
long count = 0;


File directory, file;

public SensorDataLogger() {

    directory = Utilities.createDirectory("PROVE_CAMPIONI");
    file = Utilities.createFile(directory, "file_logger.txt");
}

@Override
public void run() {

}

@Override
public void onSensorChanged(SensorEvent event) {

  //  Log.d("SensorDataLogger","Sample acquired  "+event.values[0]);
   long sampleTime = System.currentTimeMillis();
    getData(event, sampleTime);
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

}


public void getData(SensorEvent event, long sampleTime) {
    float[] values = event.values;

    if(lastUpdate == 0) {
        lastUpdate = sampleTime;
    }
    long diff = sampleTime - lastUpdate;
    count+=diff;
    lastUpdate = sampleTime;

    // Log.e("Sensor data logger","Sample acquired at "+timeStamp+" " +event.values[0]);
    Utilities.writeData(file, Utilities.getTimeInSeconds(count) +", "+values[0]+", "+values[1]+", "+values[2]+"\n");



}

}

是的,它保留一个侦听器列表,一旦生成事件,列表中的所有侦听器都会得到通知。
如果您提供一些代码示例,我可以帮助您获得实现这一目标所需的代码,但如果您已经知道如何注册事件侦听器,请对所有侦听器执行相同的操作。

如果您提供一些代码示例,请查看传感器工作。我可以帮助您实现这一点所需的代码。如果您已经知道如何注册一个事件侦听器,只需对所有侦听器执行相同的操作。

您没有为侦听器提供代码,但它似乎是正确的。如果它对您有效,请将此答案标记为已接受,否则请告诉我您得到了什么错误/错误谢谢不,我没有得到任何错误。不管怎样,你能看看我的代码吗?我向您提供sensordatalogger类抱歉,再问一个问题:我已经以不同的速度注册了两个不同的侦听器。对吗?我可以这样做吗?是的,这只是对系统的一个“提示”,它应该定义它接收事件的速度(因为它会遍历一个列表)。