以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

}

}


更多相关文章

  1. 【Android(安卓)开发教程】设置Activity的方向
  2. 关于Android(安卓)Sensor的文章
  3. Android指南针之加速度传感器地磁传感器-android学习之旅(67)
  4. 关于 Android(安卓)opencv 屏幕方向的bug
  5. Activity一些标签
  6. API
  7. Android(安卓)传感器开发 完全解析
  8. Android(安卓)射击类游戏 (一)
  9. Android的传感器编程小结

随机推荐

  1. android读取properties配置文件
  2. Android(安卓)emulator中的system.img,use
  3. Android常用的15个框架
  4. android切换到后台图片纹理丢失的解决方
  5. Android基本控件和事件以及消息总结
  6. Android(安卓): 登录并保存密码
  7. Android(安卓)修改app图标和名称的方法
  8. C# android base-64 字符数组的无效长度
  9. cocos2d-x 从C++调Java
  10. android中The connection to adb is down