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关闭.
本文介绍了Android系统应用中sensor的使用,包括Sensor类、SensorManager和SensorEventListener的角色,以及如何在应用层注册和使用传感器。同时阐述了accelerometer、proximity和light sensor在系统中的功能,如屏幕方向调整、通话防误触和自动亮度调节。文中还提到了这些sensor在不同状态下的默认开启和关闭情况。
3403

被折叠的 条评论
为什么被折叠?



