关于sensor在android系统原生应用中的使用(从应用层面验证sensor移植)

来源:互联网 发布:社交软件的英文 编辑:程序博客网 时间:2024/06/06 07:31

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关闭.

更多: http://www.jwisp.com/

原创粉丝点击