Android服务还可以接收SensorEvent吗?

时间:2013-09-27 17:37:48

标签: android android-sensors

是否可以/允许服务也是SensorEventListener?

我尝试做的是在传感器值发生变化时运行后台服务。我能够看到服务开始和停止的Toast消息,但是当我认为传感器值发生变化时,我没有得到传感器被激活的祝酒词。

这就是我所拥有的:

public class MyService extends Service implements SensorEventListener
{
    private SensorManager mSensorManager;
    private Sensor mSensor;

    public void onCreate()
    {
         Toast.makeText(this,"Service Created", Toast.LENGTH_SHORT).show();
         mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
         mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

    }

    public void onStart(Intent intent, int startId)
    {
        Toast.makeText(this, "Service started", Toast.LENGTH_SHORT).show();
    }
    public void onDestroy() 
    {
         super.onDestroy();
         Toast.makeText(this,"Service DESTROYED!!", Toast.LENGTH_SHORT).show();
    }

    public void onAccuracyChanged(Sensor sensor, int accuracy)
    {
         //do nothing
    }


    public void onSensorChanged(SensorEvent event)
    {
        Toast.makeText(this,"Sensor active", Toast.LENGTH_SHORT).show();
    }
}

1 个答案:

答案 0 :(得分:1)

正如@zapl在上面的评论中提到的那样

  

如果你想收到活动,你应该在某处mSensorManager.registerListener(this...)进行.. - zapl

只是我需要的答案。