Android之传感器(三)加速度
以Nesus s为例,由usb到听筒是Y轴;调节音量到开关屏幕为X轴;屏幕上方向为Z轴。
public class AccessSensorManagerActivity extends Activity{ @Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SensorManagersensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
Sensorsensor=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(newAcceListener(),sensor,SensorManager.SENSOR_DELAY_NORMAL);
}
}
classAcceListenerimplementsSensorEventListener{
privatefloatgravity[]=newfloat[3];
privatefloatlinear_acceleration[]=newfloat[3];
@Override
publicvoidonSensorChanged(SensorEventevent){
//TODOAuto-generatedmethodstub
finalfloatalpha=0.8f;
//分别算出X,Y,Z重力方向的加速度
gravity[0]=alpha*gravity[0]+(1-alpha)*event.values[0];
gravity[1]=alpha*gravity[1]+(1-alpha)*event.values[1];
gravity[2]=alpha*gravity[2]+(1-alpha)*event.values[2];
//得到X,Y,Z各个方向的加速度,把重力加速度的影响去掉
linear_acceleration[0]=event.values[0]-gravity[0];
linear_acceleration[1]=event.values[1]-gravity[1];
linear_acceleration[2]=event.values[2]-gravity[2];
System.out.println("x:"+linear_acceleration[0]);
System.out.println("y:"+linear_acceleration[1]);
System.out.println("z:"+linear_acceleration[2]);
}
@Override
publicvoidonAccuracyChanged(Sensorsensor,intaccuracy){
//TODOAuto-generatedmethodstub
}
}
更多相关文章
- 【Android(安卓)开发教程】设置Activity的方向
- 关于Android(安卓)Sensor的文章
- Android指南针之加速度传感器地磁传感器-android学习之旅(67)
- 关于 Android(安卓)opencv 屏幕方向的bug
- Activity一些标签
- API
- Android(安卓)传感器开发 完全解析
- Android(安卓)射击类游戏 (一)
- Android的传感器编程小结