Androidの重力感应

1. 图文介绍


假设当地的重力加速度值为g
当手机正面朝上的时候,z的值为q,反面朝上的时候,z的值为-g
当手机右侧面朝上的时候,x的值为g,右侧面朝上的时候,x的值为-g
当手机上侧面朝上的时候,y的值为g,右侧面朝上的时候,y的值为-g

2.了解了重力传感器中X,Y,Z的含义之后下面我们就开始学习如何使用
首先我们创建一个传感器管理器和一个传感器监听器,管理器用来管理传感器以及创建各种各样的传感器, 监听器用来监视传感器的变化并且进行相应的操作 首先声明传感器对象:
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
然后注册监听器 在 onResume()方法中:
protected void onResume() {   super.onResume();   if (sensorManager != null) {// 注册监听器sensorManager.registerListener(sensorEventListener,sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_NORMAL);// 第一个参数是Listener,第二个参数是所得传感器类型,第三个参数值获取传感器信息的频率    }}
 重力传感监听类   
private SensorEventListener sensorEventListener = new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {// 传感器信息改变时执行该方法float[] values = event.values;float x = values[0]; // x轴方向的重力加速度,向右为正float y = values[1]; // y轴方向的重力加速度,向前为正float z = values[2]; // z轴方向的重力加速度,向上为正Log.i(TAG, "x轴方向的重力加速度" + x + ";y轴方向的重力加速度" + y + ";z轴方向的重力加速度" + z);// 一般在这三个方向的重力加速度达到40就达到了摇晃手机的状态。int medumValue = 19;// 如果不敏感请自行调低该数值,低于10的话就不行了,因为z轴上的加速度本身就已经达到10了if (Math.abs(x) > medumValue || Math.abs(y) > medumValue|| Math.abs(z) > medumValue) {vibrator.vibrate(500); 。。。。在这里进行逻辑处理,重力加速逻辑等。。}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}};
记得要注销传感器
protected void onStop() {super.onStop();if (sensorManager != null) {// 取消监听器sensorManager.unregisterListener(sensorEventListener);}}


更多相关文章

  1. Android(安卓)用户界面---拖放(Drag and Drop)
  2. Android(安卓)传感器 II-运动传感器
  3. Android传感器 设备坐标系到世界坐标系的转换 分析以及应用
  4. Android(安卓)Developers:传感器概述
  5. Android传感器概述(二)
  6. Android(安卓)传感器 I-传感器基本介绍
  7. Android:分析onXXX事件监听器中的两个参数position和id
  8. android高分段进阶攻略(1)传感器
  9. Android(安卓)用户界面---拖放(Drag and Drop)(一)

随机推荐

  1. Android-Google自己的下拉刷新组件SwipeR
  2. 搭建android编程环境 Eclipse+jdk+SDK
  3. Android完全(退出)关闭应用程序
  4. Android 调用J2EE webservice
  5. Android 判断是否在通话中
  6. 修改和制作Android开机Logo(最终版)
  7. Android 各 api 级别与ndk 原生 api对照
  8. Android(安卓)Fragment事件透传
  9. Android Http Get/Post提交请求
  10. Android TableLayout数据列表的回显清空