Android Accelerometer setup: can I get it to run only when button it pressed.

白昼怎懂夜的黑 提交于 2019-12-11 06:54:32

问题


I am using an Accelerometer in my application and I am wondering if I can make it the way that accelerometer is only activates for a certain amount of time after the user has pressed a start button. It should stops when user press the stop button. It will essentially work as a pedometer which is part of a bigger application. This is the code used to implement the accelerometer:-

SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    int sensorType = Sensor.TYPE_ACCELEROMETER;
    sensorManager.registerListener(sensorListener, sensorManager.getDefaultSensor(sensorType),SensorManager.SENSOR_DELAY_NORMAL);

I have the code counting the steps which is:-

final SensorEventListener sensorListener = new SensorEventListener()
{

    public void onSensorChanged(SensorEvent event)
    {
            if(event.values[2]<3)
            {
                counter ++;
            }
            else if(event.values[2]>5)
            {
                counter --;
                counter ++;

            }
            sensorData.setText("Steps = "+ counter);

      }

      public void onAccuracyChanged(Sensor sensor, int accuracy){}
      };

I'm just wondering that since I'm counting the steps in the onSensorChanged method how do I limit this to only a button press state? Would it be possible to add a timer in to count how long has passed between the two button presses I mentioned earlier?


回答1:


Yes, of course.

Prepare manager:

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

Start accelerometer:

mSensorManager.registerListener(this, mAccelerometer, 
     SensorManager.SENSOR_DELAY_NORMAL);

Stop:

mSensorManager.unregisterListener(this);

Don't forget unregister listener in onPause() method.



来源:https://stackoverflow.com/questions/10050035/android-accelerometer-setup-can-i-get-it-to-run-only-when-button-it-pressed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!