Android应用软件开发

194课时
1.7K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
3分钟

5.1 案例分析

案例分析

行13:创建一个传感器的管理器实例。SensorManager管理着传感器。

行14:创建一个加速度传感器实例。该传感器可以测量物理意义上的加速度,如重力加速度。

行20:获取传感器服务。

行21-22:Sensor getDefaultSensor(int type),该方法通过传感器ID返回传感器。Sensor类中定义了很多传感器,这里列出部分传感器ID,如下:

  • l SENSOR_TYPE_ACCELEROMETER:加速度传感器
  • l SENSOR_TYPE_MAGNETIC_FIELD:磁力传感器
  • l SENSOR_TYPE_ORIENTATION:方向传感器
  • l SENSOR_TYPE_GYROSCOPE:陀螺仪传感器
  • l SENSOR_TYPE_LIGHT:光线感应传感器
  • l SENSOR_TYPE_PRESSURE:压力传感器
  • l SENSOR_TYPE_TEMPERATURE:温度传感器
  • l SENSOR_TYPE_PROXIMITY:接近传感器
  • l SENSOR_TYPE_GRAVITY:重力传感器
  • l SENSOR_TYPE_LINEAR_ACCELERATION:线性加速度传感器
  • l SENSOR_TYPE_ROTATION_VECTOR:旋转矢量传感器

实际上,手机厂商可能还会自己添加一些新型传感器。

行26:创建一个传感器事件监听器,该监听器在行53中被注册到mAccelerometer上,用于监听加速度。

行30-39:用于当传感器检测到数据发生变化时,该如何响应。

行53:将监听器注册到传感器上,并指定采样频率。

boolean registerListener(SensorEventListener listener,Sensor sensor,int rateUs)

参数的意义:listener:传感器的监听器、sensor:待监听的传感器、rateUs:传感器的采样率。

参数rateUs表示监听传感器改变的采样率,就是从传感器获取值的频率。它被定义在SensorManager中,方便我们直接使用,它定义了如下几个选项:

  • l SensorManager.SENSOR_DELAY_FASTEST:最快,延迟最小。
  • l SensorManager.SENSOR_DELAY_GAME:适合游戏的频率。
  • l SensorManager.SENSOR_DELAY_NORMAL:正常频率。
  • l SensorManager.SENSOR_DELAY_UI:适合普通用户界面UI变化的频率。

选择哪种采样率要参照所开发应用的情况,采样率越大,将越耗费资源,包括电量、CPU等。

行60-61:当Activity不在前台时,则注销传感器监听,避免浪费资源。