我在我的应用程序中使用了一个Accelerometer,我想知道我是否可以按照加速度计仅在用户按下启动按钮后激活一段时间的方式。当用户按下停止按钮时它应该停止。它基本上可以作为计步器使用,它是更大应用的一部分。这是用于实现加速度计的代码: -
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方法中的步骤,我如何将其限制为仅按下按钮状态?是否可以添加一个计时器来计算我之前提到的两次按下按钮之间经过了多长时间?
答案 0 :(得分:1)
是的,当然。
准备经理:
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
启动加速度计:
mSensorManager.registerListener(this, mAccelerometer,
SensorManager.SENSOR_DELAY_NORMAL);
停止:
mSensorManager.unregisterListener(this);
不要忘记在onPause()方法中取消注册侦听器。