加速度传感器

摇一摇




public class MainActivity extends Activity {
// *********摇一摇简化版

private SensorManager sensorManager;
int second_start = 0;
int second_end;
Builder builder;
private SensorEventListener eventListener;


// ******************************************以上均为成员变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化


}


@Override
protected void onResume() {
super.onResume();
builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("摇一摇");
builder.setMessage("实验?");
builder.setPositiveButton("恩恩", null);



eventListener = new SensorEventListener() {


@Override
public void onSensorChanged(SensorEvent event) {
float[] values = event.values;
// 三个方向上的加速度
int x = (int) values[0];
int y = (int) values[1];
int z = (int) values[2];
int min_a = 13;// 加速的的最小阀值,可适当调整
Calendar c = Calendar.getInstance();// 获取的是当前时间,位置不可变
second_end = c.get(Calendar.SECOND);// 初始化second_end
// 判断是否属于一次震荡(注意时间)
if ((Math.abs(x) > min_a || Math.abs(y) > min_a || Math.abs(z) > min_a)
&& (Math.abs(second_end - second_start) > 2)) {
second_start = second_end;
// 自己的处理
function();
}


}


private void function() {


builder.show();


}


@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub


}
};

//获取并设置传感器
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
if (sensorManager != null) {
// 第一个参数是Listener,第二个参数是所得传感器类型,第三个参数值获取传感器信息的频率
sensorManager.registerListener(
// SensorEventListener
eventListener,
// 第二个参数是要监听的传感器对象
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
// 第三个参数值获取传感器信息的频率
SensorManager.SENSOR_DELAY_NORMAL);



}
}


@Override
protected void onStop() {
super.onStop();
sensorManager.unregisterListener(eventListener);
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值