直接上代码
oncreat中初始化SensorEventListener
sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
//获取三个方向值
float[] values = event.values;
float x = values[0];
float y = values[1];
float z = values[2];
if ((Math.abs(x) > 17 || Math.abs(y) > 17 || Math.abs(z) > 17) && !isShake) {
isShake = true;//处理完后记得将isShake重置为false
MyLog.e("摇动摇动摇动");
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
activity生命周期 onstart方法中初始化加速度传感器
@Override
protected void onStart() {
super.onStart();
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
if (mSensorManager != null) {
//获取加速度传感器
Sensor mAccelerometerSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
if (mAccelerometerSensor != null) {
mSensorManager.registerListener(sensorEventListener, mAccelerometerSensor, SensorManager.SENSOR_DELAY_UI);
}
}
}
最后记得在onpause中注销传感器
@Override
protected void onPause() {
super.onPause();
if (mSensorManager != null) {
mSensorManager.unregisterListener(sensorEventListener);
}
super.onPause();
}
完活!开启你的摇一摇之路