今天给大家带来一个篇安卓传感器查询的干货教程,五一出去旅游看人山人海,不如宅在家学技术!
在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 的具体实现代码如下所示:
完成代码后运行,效果如图:
笔者在实例代码中写的传感器种类不全,可以自行修改让其识别更多传感器。