package com.sanji.firsttestapplication;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import butterknife.ButterKnife;
import utils.ToolsUtils;
/***
* 加速度传感器模仿微信摇一摇
**/
public class SensorActivity extends BaseActivity {
private SensorManager sensorManager;
private Sensor sensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notification);
ButterKnife.bind(this);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//TYPE_ACCELEROMETER:加速度传感器
//TYPE_ORIENTATION:方向传感器
//TYPE_LIGHT:照明传感器
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//SensorManager.SENSOR_DELAY_FASTEST,SensorManager.SENSOR_DELAY_GAME,SENSOR_DELAY_NORMAL,SensorManager.SENSOR_DELAY_UI
//定位更新速度依次降低
sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onDestroy() {
super.onDestroy();
sensorManager.unregisterListener(listener);
}
private SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//加速度可能会是负值,所以要取他们的绝对值
float xValue = Math.abs(event.values[0]);
float yValue = Math.abs(event.values[1]);
float zValue = Math.abs(event.values[2]);
if (xValue > 15 || yValue > 15 || zValue > 15l) {
//认为用户摇动了手机,出发摇一摇逻辑
ToolsUtils.toast(SensorActivity.this, "摇一摇");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
}
加速度传感器模拟微信摇一摇
最新推荐文章于 2021-10-23 20:01:47 发布