直接上代码
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();
}
完活!开启你的摇一摇之路

这篇博客详细介绍了如何在Android应用中实现摇一摇功能。通过在onCreate中初始化SensorEventListener,并在onStart中注册加速度传感器,监听设备的运动变化。当检测到加速度超过一定阈值时,触发摇一摇事件。在onPause中注销传感器以节省资源。通过这种方式,你可以轻松地为你的应用添加有趣的交互体验。
417

被折叠的 条评论
为什么被折叠?



