我在我的应用程序中使用了加速度计,我想知道我是否可以使它成为用户按下开始按钮后,加速度计仅在一定时间内激活的方式。当用户按下停止按钮时,它应该停止。它本质上是一个计步器,是一个更大的应用程序的一部分。这是用来实现加速度计的代码:
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方法中的步骤,我如何将其限制为只有一个按钮按下状态?是否可以添加一个计时器来计算我前面提到的两次按下按钮之间经过了多长时间?
发布于 2012-04-07 07:15:08
是的,当然。
准备经理:
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);启动加速度计:
mSensorManager.registerListener(this, mAccelerometer,
SensorManager.SENSOR_DELAY_NORMAL);停止:
mSensorManager.unregisterListener(this);不要忘记在onPause()方法中取消注册侦听器。
https://stackoverflow.com/questions/10050035
复制相似问题