卓派观点

 

sensor的使用由android系统应用和用户应用两层来使用.

根据jwisp的经验和实验, 下面总结一下三个sensor在系统和应用里面是什么��候使用, 什么时候开启和关闭的, 以方便大家移植和调试

一. sensor在应用中的使用

sensor在framework 中提供给应用的主要有四个类

  Sensor类(提供Sensor对象,Sensor的一些基本参数和配置,在对象初始化的时候完成.)

  SensorManger (提供主要的对传感器的操作和功能,使用和调用)

  SensorEventListener (Sensor的*********接口,当发生相应事件时,调用此接口的方法)

  SensorEvent (Sensor事件)
 应用层若使用Sensor时,有以下几个关键的方法.

 1. 调用activity的getSystemService方法来得到一个SensorManager对象. SenSorManager sensorManager = getSystemService(SENSOR_SERVICE);

 2. 通过SensorManager得到要使用的Sensor对象. 如: Sensor sensor = sensorManger.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

 3. 实现一个Sensor*********接口的类, SensorEventListener sensorListener = new SensorEventListener(){};

 4. 通过manager为sensro注册*********. sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_GAME);

二. sensor在系统应用中的使用

accelerometer, proximity, light 三个sensor都在系统当中都有重要的应用:

 1. accelerometer 主要是在横竖屏中使用, 根据asensor的三个xyz值来算出,当前需要如何调整屏幕需要适应的方向

 2. proximity 在接听电话时, 防止当耳朵触摸到屏幕上的按键而出现挂断这种误操作, 在通话中, 若接近则关闭屏幕, 若远离则打开屏幕

 3. light sensor可用根据对外界的光感应来自动设置屏幕亮度.

 三个sensor在系统中, 默认的开启和关闭

 1. a-sensor在机器进入睡眠后, 会关闭, 在唤醒后,会打开

 2. p-sensor在进入电话状态后, 会打开, 挂断电话后, 会关闭

 3. l-sensor在屏幕开启时会打开, 在屏幕关闭时会关闭.

注意在通话过程中, 会出现, 屏幕关闭, 但是机器并没有进入睡眠状态的情况, 此时a-sensor开启, 而l-sensor关闭.

版权所有,转载请注明出处。
转载自 <a href="http://www.jwisp.com/?p=115" title="关于sensor在android系统framework和应用中的使用" rel="bookmark">关于sensor在android系统framework和应用中的使用 | 卓派</a>

我简单说几句


随机推荐

最新评论

固定链接

随机链接