关于Sensor有关键的三个类:Sensor,SensorManger,SensorEventListener(是一个监听接口)

在Sensor类中可以看到android中定义的所有支持的传感器:

Constants
int TYPE_ACCELEROMETER A constant describing an accelerometer sensor type.              // 加速表传感器
int TYPE_ALL A constant describing all sensor types.                     // 周边温度传感器 api level 14以上支持
int TYPE_AMBIENT_TEMPERATURE A constant describing an ambient temperature sensor type           // 温度传感器
int TYPE_GRAVITY A constant describing a gravity sensor type.                  // 重力传感器,api level 9以上支持
int TYPE_GYROSCOPE A constant describing a gyroscope sensor type                 // 陀螺仪传感器
int TYPE_LIGHT A constant describing an light sensor type.                   // 光线传感器
int TYPE_LINEAR_ACCELERATION A constant describing a linear acceleration sensor type.             // 直线加速度传感器 api level 9以上支持
int TYPE_MAGNETIC_FIELD A constant describing a magnetic field sensor type.               // 地磁传感器
int TYPE_ORIENTATION This constant is deprecated. use SensorManager.getOrientation() instead.    
int TYPE_PRESSURE A constant describing a pressure sensor type                 // 压力传感器
int TYPE_PROXIMITY A constant describing an proximity sensor type.                // 近距传感器(打电话过程中结合光线传感器自动关闭屏幕使用)
int TYPE_RELATIVE_HUMIDITY A constant describing a relative humidity sensor type.               
int TYPE_ROTATION_VECTOR A constant describing a rotation vector sensor type.
int TYPE_TEMPERATURE This constant is deprecated. use Sensor.TYPE_AMBIENT_TEMPERATURE instead.    // 温度传感器

得到一个Sensor对象的步骤:

  1.SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);

  2.Sensor sensor = _sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);  // 参数从上表中选择

注册SensorEvent监听器:

  sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME);  

  第二个参数是灵敏度,系统中定义了几个:

int SENSOR_DELAY_FASTEST get sensor data as fast as possible
int SENSOR_DELAY_GAME rate suitable for games
int SENSOR_DELAY_NORMAL rate (default) suitable for screen orientation changes
int SENSOR_DELAY_UI rate suitable for the user interface

  注意:注册监听器后当程序不再需要监听时要取消监听,因为系统不会自动将其取消,这样对电池损耗很大,所以最好在onPause函数中取消监听。

更多相关文章

  1. unity内置浏览器插件UniWebView的使用(支持Android,ios,Mac)
  2. android下的多媒体开源项目
  3. DatePicker 日期选择控件 DatePickerDialog 日期选择对话框
  4. Android也有beacon了
  5. 解决Android编辑框在全屏模式下无法检测布局变化的问题
  6. Android(安卓)ListView 之 SimpleAdapter 二 (包含 item 中按钮
  7. Android:通过WifiManager监听Wifi信号强弱
  8. Android又一个超漂亮的日历控件
  9. android scrollview中嵌套expandablelistview

随机推荐

  1. android设置EditText不可编辑内容,响应点
  2. TextView处理显示字数过长
  3. IPC进程间通信
  4. 使用Python开发Android应用程序:第一节 在
  5. android第五天早:抗锯齿和全屏
  6. Android XML 不常用属性
  7. Hello World
  8. 系出名门Android(7) - 控件(View)之ZoomC
  9. android activity之间平滑切换
  10. Android开发工具——Android studio1.0正