Android_传感器综述

AndroidSensor系统涉及了Android的各个层次。Android系统支持多种传感器,有的传感器已经在Android的框架中使用,大多数传感器由应用程序来使用。

传感器

JAVA中的名称

本地接口名称

数值

加速度

TYPE_ACCELEROMETER

SENSOR_TYPE_ACCELEROMETER

1

磁力域

TYPE_MAGNETIC_FIELD

SENSOR_TYPE_MAGNETIC_FIELD

2

方向

TYPE_ORIENTATION

SENSOR_TYPE_ORIENTATION

3

陀螺

TYPE_GYROSCOPE

SENSOR_TYPE_GYROSCOPE

4

光线(亮度)

TYPE_LIGHT

SENSOR_TYPE_LIGHT

5

压力

TYPE_PRESSURE

SENSOR_TYPE_PRESSURE

6

温度

TYPE_TEMPERATURE

SENSOR_TYPE_TEMPERATURE

7

距离

TYPE_PROXIMITY

SENSOR_TYPE_PROXIMITY

8


传感器系统的JAVA部分包含了以下几个文件:

SensorManager.java

实现传感器系统核心的管理类SensorManager

Sensor.java

单一传感器的描述性文件Sensor

SensorEvent.java

表示传感器系统的事件类SensorEvent

SensorEventListener.java

传感器事件的监听者SensorEventListener接口

SensorListener.java

传感器的监听者SensorListener接口(不推荐使用)

SensorManager的主要的接口如下所示:

publicclassSensorManagerextendsIRotationWatcher.Stub

{

publicSensorgetDefaultSensor(inttype){//获得默认的传感器}

publicList<Sensor>getSensorList(inttype){//获得传感器列表}

publicbooleanregisterListener(SensorEventListenerlistener,

Sensorsensor,intrate,Handlerhandler){//注册传感器的监听者}

voidunregisterListener(SensorEventListenerlistener,Sensorsensor)

{//注销传感器的监听者}

}

Sensor的主要的接口如下所示:

publicclassSensor{

floatgetMaximumRange(){//获得传感器最大的范围}

StringgetName(){//获得传感器的名称}

floatgetPower(){//获得传感器的耗能}

floatgetResolution(){//获得传感器的解析度}

intgetType(){//获得传感器的类型}

StringgetVendor(){//获得传感器的Vendor}

intgetVersion(){//获得传感器的版本}

}

Sensor类的初始化在SensorManagerJNI代码中实现,在SensorManager.java维护了一个Sensor的列表。

SensorEvent类比较简单,实际上是Sensor类加上

了数值(values),精度(accuracy),时间戳timestamp)等内容。

SensorEventListener接口描述了SensorEvent的监听者内容如下所示:

publicinterfaceSensorEventListener{

publicvoidonSensorChanged(SensorEventevent);

publicvoidonAccuracyChanged(Sensorsensor,intaccuracy);

}

同时在eoe上看到一篇不错的文章:

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=181058

一个简单的Demo下载,无需积分

http://download.youkuaiyun.com/detail/zqiang_55/4699641



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值