物联网  >   传感器  >  正文

教程:Android传感器—传感器查询demo

         今天给大家带来一个篇安卓传感器查询的干货教程,五一出去旅游看人山人海,不如宅在家学技术!
  在Android系统中提供有加速度、磁场、方向、陀螺仪、光线、压力、温度和接近等传感器。传感器系统会主动对上层报告传感器精度和数据的变化,并且提供了设置传感器精度的接口,这些接口可以在Java应用和Java框架下使用。本次,将要在Android studio下完成一个简单的Android手机传感器信息查询demo。

  

 

  


(传感器的API接口)

 

  在此我列举几个,但不全部说明。

  (1)TYPE_ACCELEROMETER:加速度传感器,单位是m/s²,测量用于设备x,y,z轴的加速度。绝大部分手机都有这个传感器。

  (2)TYPE_AMBIENT_TEMPERATURE:温度传感器,单位是摄氏度,能够测量并返回当前的温度。

  (3)TYPE_GRAVITY:重力传感器,单位是m/s²,用于测量设备x,y,z轴的重力,地球重力约为9.8m/s²。

  (4)TYPE_GYROSCOPE:陀螺仪传感器,单位是rad/s²,能够测量设备X,Y,Z三轴的角加速度。

  (5)TYPE_LIGHT:光线感应传感器,单位是lx,能够检测周围的光线强度,在手机中位于前面板,用于调节屏幕亮度。

  (6)TYPE_LINEAR_ACCELERATION:线性加速度传感器,单位是m/s²,能够得到加速度传感器去除重力影响得到的数据。

  (7)TYPE_MAGNETIC_FIFLD:磁场传感器,单位是微特斯拉,能够测量围绕三个物理轴的磁场。

  (8)TYPE_ORIENTATION:方向传感器,用于测量设备围绕三个物理轴的旋转角度,在4.1之后被SensorManager。getOrientation()替代。

  

 

  (9)TYPE_PROXIMITY:距离传感器,单位是厘米,能够测量某个对象到屏幕的距离。可以在通话时判断人耳到设备的距离,达到省点的目的。而且口袋防误触功能,人脸识别技术与该传感器息息相关。

  (10)TYPE_PRESSURE:气压传感器,单位是百帕斯卡,能够返回当前环境下的压强。

  (11)TYPE_RELATIVE_HUMIDITY:湿度传感器,能够测量周围环境的相对湿度,一般很少有设备搭载该传感器。

  (12)TYPE_ROTATION_VECTOR:旋转向量传感器,旋转矢量代表设备的方向,是一个将坐标轴和角度混合混合计算的得到的数据。

  (13)TYPE_TEMPERATURE:温度传感器,被TYPE_AMBIENT_TEMPERATURE取代。

  (14)TYPE_ALL:返回所有的传感器类型。

  (15)TYPE_GAME_ROTATION_VECTOR:除了不能使用地磁场之外,和TYPE_ROTATION_VECTOR的功能相同。

  (16)TYPE_GYROSCOPE_UNCALIBRATED:提供了能够让应用调整传感器的原始值,定义了一个未校准陀螺仪的传感器类型。

  (17)TYPE_MAGNETIC _FIELD_UNCALIBRATED:和TYPE_GYROSCOPE_UNCALIBRATED相似,也提供了能够让应用调整传感器的原始值,定义了一个描述未校准陀螺仪的传感器类型。

  (18)TYPE_SIGNIGICANT_MOTION:运动触发传感器,应用程序不需要为这种传感器触发任何唤醒锁,能够检测当前设备是否运动,并发送检测结果。

  (19)TYPE_HEAR_RATE:心率传感器 ,检测用户的心率水平。

  (20)TYPE_STAP_COUNTE:计步传感器用于检测用户的行走步数的传感器。

  其他请到网站自行查询。

  开始着手编程,本demo功能是检测当前设备支持的传感器。

  布局文件activity_main.xml 代码如下所示:

  

 

  主程序文件MainActivity.java 的具体实现代码如下所示:

  

 

  

 

  

 

  完成代码后运行,效果如图:

  

 

  笔者在实例代码中写的传感器种类不全,可以自行修改让其识别更多传感器。

上一篇:本特利传感器3500故障诊断解决方案

下一篇:图解:汽车传感器的分类与识别