我在我的应用程序中使用加速度计,我想知道是否可以让加速度计仅在用户按下开始按钮后激活一定时间。当用户按下停止按钮时它应该停止。它本质上将作为一个更大应用程序的一部分的计步器工作。这是用于实现加速度计的代码:-
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 方法中的步骤,我该如何将其限制为仅按钮按下状态?是否可以添加一个计时器来计算我之前提到的两次按下按钮之间经过了多长时间?
最佳答案
当然可以。
准备经理:
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
启动加速度计:
mSensorManager.registerListener(this, mAccelerometer,
SensorManager.SENSOR_DELAY_NORMAL);
停止:
mSensorManager.unregisterListener(this);
不要忘记在 onPause() 方法中注销监听器。
关于Android 加速度计设置 : can I get it to run only when button it pressed.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050035/