0

サービスを SensorEventListener にすることは可能ですか?

私がやろうとしているのは、センサー値が変化したときに何かを行うバックグラウンド サービスを実行することです。サービスの開始と停止を示すトースト メッセージを確認できますが、センサーの値が変化したと思われるときに、センサーがアクティブになったことを示すトースト メッセージが表示されません。

これは私が持っているものです:

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();
    }
}
4

1 に答える 1

1

上記のコメントで@zaplが述べたように

イベントを受信したい場合は、mSensorManager.registerListener(this...)どこかで行う必要があります.. – zapl

まさに私が必要としていた答えでした。

于 2013-09-27T19:22:44.977 に答える