Android传感器(上)
简单说 Android 中传感器方面的知识。如有不妥之处,欢迎留言指正,谢谢~
在一年前,在做智能农业检测系统项目时,就有机会接触过传感器方面的知识,只是当时自己并没有直接接触到这方面的代码,而是进行数据的处理。所以仅仅是擦肩而过的感觉。
目前已经有很多传感器集成到了 Android 手机中,经常听到的有:光线传感器、方向传感器、加速度传感器、重力传感器、陀螺仪传感器等等。在开发中很有可能会遇到使用传感器的知识。通过传感器,我们可以开发各种新颖的应用程序,例如:指南针、水平仪、重力感应游戏等等。
由于 Android 为提供了强大的管理服务,所以在 Android 中开发传感器应用还是相对比较简单的。下面就来说说,开发传感器应用时的步骤。
传感器的使用步骤
- 获取传感器管理服务,通过 Context 的
getSystemService(Context.SENSOR_SERVICE)
方法; - 获取指定类型的传感器,通过 SensorManager 的
getDefaultSensor(int type)
方法; - 注册指定传感器的注册监听,通过 SensorManager 的
registerListener(SensorEventListener listener, Sensor sensor, int samplingPeriodUs)
;- listener:是指监听传感器的时间监听器,需要实现
SensorEventListener 接口
; - sensor:是指传感器对象;
- samplingPeriodUs:是指传感器数值的刷新频率,有以下4种:
SENSOR_DELAY_FASTEST = 0
:最快,即延迟最小咯。只有特别依赖传感器数据的应用推荐采用这个频率。缺点:耗电、由于传递的是原始数据,所以算法处理不好将会影响应用的性能。SENSOR_DELAY_GAME = 1
: 顾名思义,适合游戏的刷新频率,能够适合实时性的需求。SENSOR_DELAY_NORMAL = 3
: 正常频率,适用于对实时性不是特别高的应用。SENSOR_DELAY_UI = 2
: 很明显,这个适用于用户界面更新的频率,具有省电、开销小的优点,缺点就是延迟大。
- listener:是指监听传感器的时间监听器,需要实现
- 记得不用的时候需要取消注册的监听服务,通过SensorManager 的
unregisterListener(SensorEventListener listener)
。
以上就是传感器的基本使用步骤。
看起来很简单对吧,其实实现起来确实也不难。下面就写一个简单的 Demo,这个 Demo 将使用到光线传感器,将当前光线强度显示在手机界面上。
先来看下效果图:(用手挡了光线)

布局界面很简单,这里就不给出来了,就一个 TextView 显示光线强度。
关键代码,如下:
|
|
Andrroid 传感器(上) 到此结束。
Andrroid 传感器(中)、Andrroid 传感器(下) 我也将尽快更新。敬请期待~
项目地址
作者简介:
刘广明(@cnLGMing),一步一步往上爬。
邮箱:liuguangmingcn@163.com
文章若有不对之处,欢迎留言指正,谢谢~
版权声明:原创作品,转载时请务必注明原始出处。