直接上代码
oncreat中初始化SensorEventListener
sensorEventListener = new SensorEventListener() {@Overridepublic 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重置为falseMyLog.e("摇动摇动摇动");}}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}};
activity生命周期 onstart方法中初始化加速度传感器
@Overrideprotected 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中注销传感器
@Overrideprotected void onPause() {super.onPause();if (mSensorManager != null) {mSensorManager.unregisterListener(sensorEventListener);}super.onPause();}
完活!开启你的摇一摇之路