ITPub博客

首页 > 应用开发 > IT综合 > 重力传感器开发详解

重力传感器开发详解

IT综合 作者:mandy_zhi 时间:2014-11-03 17:14:50 0 删除 编辑

重力传感器与方向传感器的开发步骤类似,只要理清了期中的x,y,z的值之后就可以根据他们的变化来进行编程了(推荐Android开发教程),首先来看一副图

传感器,假设当地的重力加速度值为g

当手机正面朝上的时候,z的值为q,反面朝上的时候,z的值为-g
当手机右侧面朝上的时候,x的值为g,右侧面朝上的时候,x的值为-g
当手机上侧面朝上的时候,y的值为g,右侧面朝上的时候,y的值为-g
了解了重力传感器中X,Y,Z的含义之后下面我们就开始学习如何使用
首先我们创建一个传感器管理器和一个传感器**器,管理器用来管理传感器以及创建各种各样的传感器,**器用来监视传感器的变化并且进行相应的操作
** SensorManager sensorManager;
** MySensorEventListener mySensorEventListener;
mySensorEventListener= new MySensorEventListener();//这个**器当然是我们自己定义的,在重力感     应器感应到手机位置有变化的时候,我们可以采取相应的操作,这里紧紧是将x,y,z的值打印出来
** final class MySensorEventListener implements  SensorEventListener{
@Override
//可以得到传感器实时测量出来的变化值
public void onSensorChanged(SensorEvent event) {
//重力传感器
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
    float x = event.values[SensorManager.DATA_X];
    float y = event.values[SensorManager.DATA_Y];
    float z = event.values[SensorManager.DATA_Z];
   //tv_accelerometer是界面上的一个TextView标签,不再赘述
   tv_orientation.setText(“Orientation:”+x+”,”+y+”,”+z);
 }
}
我们在onResume方法中创建重力传感器,并向系统注册**器
protected void onResume() {
    Sensor sensor_accelerometer=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    sensorManager.registerListener(mySensorEventListener,sensor_accelerometer,   SensorManager.SENSOR_DELAY_UI);
super.onResume();
}
最后我们在onPause()中注销所有传感器的**,释放重力感应器资源!
protected void onPause() {
/注销所有传感器的**
sensorManager.unregisterListener(mySensorEventListener);

super.onPause();

Android开发已经不是什么新鲜的事情了,不过开放的系统依然是人们最求玩机的对象。学习Android开发、学习更多移动互联网教程知识可登陆e良师益友网。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29967646/viewspace-1319064/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-10-20

  • 博文量
    41
  • 访问量
    100439