Android 我可以在同一服务中收听两个传感器吗?

Android 我可以在同一服务中收听两个传感器吗?,android,service,sensors,Android,Service,Sensors,我正在开发一个android应用程序,在这个应用程序中,我必须同时收听接近传感器和加速度传感器。棘手的是,我必须在相同的服务中使用它 我知道我必须在onCreate()方法中分别注册每个侦听器。但是我只能有一个onSensorChanged()方法。对吧? 是否可以区分onSensorChanged()方法中的侦听器 还是有其他方法可以做到这一点?或者一开始就可以做到吗 提前感谢。是的,从文档中可以看到onSensorChanged方法传递了一个参数: public final void onS

我正在开发一个android应用程序,在这个应用程序中,我必须同时收听接近传感器和加速度传感器。棘手的是,我必须在相同的服务中使用它

我知道我必须在
onCreate()
方法中分别注册每个侦听器。但是我只能有一个
onSensorChanged()
方法。对吧?

是否可以区分
onSensorChanged()方法中的侦听器

还是有其他方法可以做到这一点?或者一开始就可以做到吗


提前感谢。

是的,从文档中可以看到
onSensorChanged
方法传递了一个参数:

public final void onSensorChanged(SensorEvent event)
SensorEvent
有一个名为Sensor的
Sensor
字段,您可以使用该字段来区分哪种传感器具有新值,当然:

@Override
public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        // Accelerometer Sensor
    } else if (event.sensor.getType() == Sensor.TYPE_GRAVITY) {
        // Gravity Sensor
    }
}