1

我在我的应用程序中使用加速度计,我想知道是否可以使加速度计仅在用户按下开始按钮后激活一段时间。当用户按下停止按钮时它应该停止。它本质上将用作计步器,这是更大应用程序的一部分。这是用于实现加速度计的代码:-

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

我有计算步骤的代码:-

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){}
      };

我只是想知道,由于我正在计算 onSensorChanged 方法中的步骤,我如何将其限制为仅按下按钮状态?是否可以添加一个计时器来计算我之前提到的两次按下按钮之间的时间?

4

1 回答 1

1

是的当然。

准备经理:

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

启动加速度计:

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

停止:

mSensorManager.unregisterListener(this);

不要忘记在 onPause() 方法中取消注册监听器。

于 2012-04-06T23:15:08.300 回答