Android-传感器

1.传感器的定义:一种物理设备或者生物器官,能够探测、感受外界的信号,物理条件(如光,热, 湿度)或化学组成(如烟雾),并将探知的信息传递给其他的设备或者器官。
2.传感器的种类:可以从不同的角度对传感器进行划分,转换原理(传感器工作的基本物理或化学效应)、用途、输出信号以及制作材料和工艺等。一般是按工作原理分:物理传感器与化学传感器两类。手机上搭载的基本都是物理传感器,手机上搭载的传感器有下面这些:

1.Android常用传感器

  • 方向传感器(Orientation sensor)
  • 加速感应器(Accelerometer sensor)
  • 陀螺仪传感器(Gyroscope sensor)
  • 磁场传感器(Magnetic field sensor)
  • 距离传感器(Proximity sensor)
  • 光线传感器(Light sensor)
  • 气压传感器(Pressure sensor)
  • 温度传感器(Temperature sensor)
  • 重力感应器(Gravity sensor,Android 2.3引入
  • 线性加速感应器(Linear acceleration sensor ,Android 2.3引入)
  • 旋转矢量传感器(Rotation vector sensor,Android 2.3)
  • 相对湿度传感器(Relative humidity sensor,Android 4.0)
  • 近场通信(NFC)传感器(Android 2.3引入),NFC和其他不一样,具有读写功能。

使用传感器开发

1,传感器的开发首先需要获取传感器的一些信息,获取信息需要以下步骤

  • 获取传感器:Android提供了一个sensorManager管理器,通过这个类可以获取到都有哪些传感器,获取sensorManager对象代码如下:
SensorManager sm = (sensorManager)getSystemService(SENSOR_SERVICE);
  • 获取传感器对象列表,通过sensorManager管理器的getSensorList()方法,可以获取传感器对象列表,具体代码如下:
List<Sensor> allSensor  = sm.getSensorList(Sensor.TYPE_ALL);
  • 循环获取Sensor对象,然后调用对应方法获得传感器的相关信息,,具体代码如下
for(Sensor s:allSensor  ){sensor.getName();                                              // 获得传感器名称
sensor.getType();                                              //获得传感器种类
sensor.getVendor();                                            //获得传感器供应商
sensor.getVersion();                                           //获得传感器的版本
sensor.getResolution();                                        //获得精度值
sensor.getMaxmumRange();                                       //获得最大范围
sensor.getPower()                                              //传感器使用时的耗电量

以上步骤获取到传感器信息

2.获取传感器传回来的数据

  • 通过调用Context的getSystemServic方法,获取传感器管理器,具体代码如下
SensorManager sm = (sensorManager)getSystemService(SENSOR_SERVICE);
  • 调用SensorManager 对象的getDefaultSensor方法,获取指定类型的传感器,例如这里使用光线传感器,具体代码:
Sensor mSensorOrientation = sm.getDefaultSensor(Sensor.TYPE_LIGHT);
  • 为传感器注册监听事件,通过调用sensorManager对象的registerListener()方法来注册监听事件,具体代码如下
<code>ms.registerListener(mContext,mSensorOrientation,andriod:hardware.SensorManager .SENSOR_DELAY_UI);</code>

参数说明:
listener:监听传感器事件的监听器,通过SensorEventListener接口来完成
sensor:传感器对象
rate:指定获取传感器数据的频率

  • SENSOR_DELAY_FASTEST——延时:0ms
  • SENSOR_DELAY_GAME——延时:20ms
  • SENSOR_DELAY_UI——延时:60ms
  • SENSOR_DELAY_NORMAL——延时:200ms

实现 SensorEventListener接口,重写onSensorChanged和onAccuracyChanged的方法。
①:onSensorChanged(SensorEvent event);该方法在传感器的值发生改变的时候调用,其参数是一个SensorEvent 对象,通过该对象的values属性可以获取传感器的值,该值是一个数组,该变量最多有三个元素,而且传感器不同,对应元素代表的含义也不同
②:onAccuracyChanged(Sensor sensor , int accuracy);当传感器的进度发生改变时会回调,
参数说明:
sensor:传感器对象
accuracy:表示传感器新的精度

  • 具体代码如下
@Override
public void onSensorChanged(SensorEvent event){final float[] _Date = event.values;
this.mService.onSensorChanged(_Date[0],_Date[1],_Date[2]);
}
@Override
public void onAccuracyChanged(Sensor sensor , int accuracy){}
  • 使用完传感器后对监听事件取消注册,具体代码如下
ms.registerListener(mContext,mSensorOrientation,andriod:hardware.SensorManager .SENSOR_DELAY_UI);

Android-传感器相关推荐

  1. 《Android传感器开发与智能设备案例实战》——导读

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的目录,作者 朱元波,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 ...

  2. 《Android传感器开发与智能设备案例实战》——第2章,第2.4节安装ADT

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的第2章,第2.4节安装ADT,作者 朱元波,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  3. 【转】深入探讨 Android 传感器

    Android 是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能.Android 还提供了一组丰富的接口选项.在本文中,学习如何配合使用 Android 的各种传感器选 ...

  4. 《Android传感器开发与智能设备案例实战》——第1章,第1.2节Android的巨大优势...

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的第1章,第1.2节Android的巨大优势,作者 朱元波,更多章节内容可以访问云栖社区"异步社区&quo ...

  5. Android传感器-开发指南

    大部分Android平台的设备都带有多个传感器,使你能监视其方位和运动状态的变化.很多设备还有其它类型的传感器,让你能感知周围的环境条件,比如温度.压力.湿度和光线.你可以利用Android的传感器框 ...

  6. 关于Android 传感器坐标与读数的进一步讨论

    关于Android 传感器坐标与读数的进一步讨论 之前一些相关的讨论见: Android Sensors (3) 传感器坐标系统 Android Sensors (5) 运动传感器 Motion Se ...

  7. android 传感器 balance filter,Android 传感器 API.doc

    Android 传感器 API 1.1 序言 ? ?[Android蛋蛋网]在这一章我们主要针对Android的传感器(Sensor)进行说明.如果说Java的程序和硬件有些远的感觉,那么可以说传感器 ...

  8. Android传感器编程入门(三)

    上接<Android传感器编程入门(二)> 三.实例:窈窈录音器 通过上面的例子我们学会了如何获得某种类型的传感器,下面我通过一个实例来学会如何使用某一个类型的传感器.我们这里使用加速度传 ...

  9. android传感器_Android传感器

    android传感器 In this tutorial, we'll be digging deep into the world of Android Sensors. Our smartphone ...

  10. Android 传感器开发详解

    Android 传感器开发详解 本文转载自:https://blog.csdn.net/airsaid/article/details/52902299 前言 使用 第一步 第二步 第三步 方向传感器 ...

最新文章

  1. 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(4):Clustering(欧式聚类)
  2. Window编程主函数详解
  3. 苹果自动驾驶部门「裁员」又「重组」,AI负责人接掌「泰坦」
  4. MapStruct在Eclipse中的使用
  5. 下述程序有什么问题?
  6. 网页上有错误(类不能支持 Automation 操作)解决方法
  7. Android Gradle 多渠道打包、动态配置AppName
  8. phpgif图片包_PHP生成GIF动态图片验证码
  9. Linux上下载chronyd安装包,如何在Linux中安装和使用Chrony时间同步
  10. 基于Python-turtle库绘制小猪佩奇、小猫咪
  11. Julia: Array 很不同!
  12. 软考|高级信息系统项目管理师
  13. 几款免费好用的OCR工具
  14. 最新单片机毕业设计题目大全
  15. 基于mybatis的数据库脱敏
  16. 央行企业征信异议处理条件及流程
  17. Docker实战-部署GPE微服务的监控体系(二)
  18. python挖矿木马_记一次阿里云被植入挖矿木马的事件
  19. 基于 51 单片机室内灯光控制系统
  20. 2020.2.5普及C组 Hank比赛【纪中】【DP】

热门文章

  1. Modbus RTU通讯实例:安科瑞电表通讯
  2. 激光雷达目标识别算法研究综述
  3. 扫描图像二维码抠图(倾斜校正 去黑边)
  4. WampServer:Your port 8080 is actually used by : Server: Embedthis-http
  5. 绝地求生目前几个自定义服务器,绝地求生自定义服务器匹配_绝地求生自定义服务器匹配介绍_牛游戏网...
  6. LeetCode:10. Regular Expression Matching
  7. Android中检测手机制式和移动网络类型
  8. 收集的几个存在漏洞的程序
  9. block:cfq 学习02
  10. 手机版wps怎么竖版_wps手机上怎么竖着写