没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
大家好,由于最近会有对智能硬件相关的开发需求,所以最近这些天分享的博文也就大致挂钩智能硬件了,像上一篇的蓝牙分享,相信很多读者已经看过了,那么今天我为大家带来Android传感器方面知识的介绍与使用方法,对于传感器的使用,不同版本的Android手机也许存在较大的硬件差异,但是万变不离其宗,本篇将通过几个最常见的传感器,渗透式的教会大家如何使用这些传感器,带领大家完成这部分的进阶提高。让每一位Android开发者都对传感器的使用变得游刃有余。 1.Android的三大类传感器 Android传感器按大方向划分大致有这么三类传感器:动作(Motion)传感器、环境(Environmental)传
资源推荐
资源详情
资源评论





























详解详解Android 传感器开发传感器开发 完全解析完全解析
大家好,由于最近会有对智能硬件相关的开发需求,所以最近这些天分享的博文也就大致挂钩智能硬件了,像上一篇的蓝牙分
享,相信很多读者已经看过了,那么今天我为大家带来Android传感器方面知识的介绍与使用方法,对于传感器的使用,不同
版本的Android手机也许存在较大的硬件差异,但是万变不离其宗,本篇将通过几个最常见的传感器,渗透式的教会大家如何
使用这些传感器,带领大家完成这部分的进阶提高。让每一位Android开发者都对传感器的使用变得游刃有余。
1.Android的三大类传感器的三大类传感器
Android传感器按大方向划分大致有这么三类传感器:动作(Motion)传感器、环境(Environmental)传感器、位置
(Position)传感器。
((1)动作传感器)动作传感器
这类传感器在三个轴(x、y、z)上测量加速度和旋转角度。包括如下几个传感器:
加速(accelerometer)传感器、重力(gravity)传感器、陀螺仪(gyroscope)传感器、旋转向量(rotational vector )传感
器
下面来看一下传感器世界的坐标系:
传感器世界的坐标系
是不是已经有点感觉了。
((2)环境传感器)环境传感器
这类传感器可以测量不同环境的参数,例如,周围环境的空气温度和压强、光照强度和湿度。包括如下几个传感器:
湿度(barometer)传感器、光线(photometer)传感器、温度(thermometer)传感器
((3)位置传感器)位置传感器
这类传感器可以测量设备的物理位置。包括如下几个传感器:
方向(orientation)传感器、磁力(magnetometer)传感器
了解后我们就开始进入传感器的编程工作了,接下来我们看一下Android为我们提供的传感器框架(Android sensor
framework,简称ASF)。
2.Android传感器框架传感器框架
Android SDK为我们提供了ASF,可以用来访问当前Android设备内置的传感器。ASF提供了很多类和接口,帮助我们完成各
种与传感器有关的任务。例如:
1)确定当前Android设备内置了哪些传感器。
2)确定某一个传感器的技术指标。
3)获取传感器传回来的数据,以及定义传感器回传数据的精度。
4)注册和注销传感器事件监听器,这些监听器用于监听传感器的变化,通常从传感器回传的数据需要利用这些监听器完成。
ASF允许我们访问很多传感器类型,这些传感器有一些是基于硬件的传感器,还有一些是基于软件的传感器。基于硬件的传感

器就是直接以芯片形式嵌入到Android设备中,这些传感器直接从外部环境获取数据。基于软件的传感器并不是实际的硬件芯
片,基于软件的传感器传回的数据本质上也来自于基于硬件的传感器,只是这些数据通常会经过二次加工。所以基于软件的传
感器也可以称为虚拟(virtual)传感器或合成(synthetic)传感器。
Android对每个设备的传感器都进行了抽象,其中SensorManger类用来控制传感器,Sensor用来描述具体的传感
器,SensorEventListener用来监听传感器值的改变。
((1))SensorManager类类
用于创建sensor service的实例。该类提供了很多用于访问和枚举传感器,注册和注销传感器监听器的方法。而且还提供了与
传感器精度、扫描频率、校正有关的常量。
((2))Sensor类类
Sensor类为我们提供了一些用于获取传感器技术参数的方法。如版本、类型、生产商等。例如所有传感器的TYPE类型如下:
注意:1-8是硬件传感器,9是软件传感器,其中方向传感器的数据来自重力和磁场传感器,10-12是硬件或软件传感器。
序号序号 传感器传感器 Sensor类中定义的类中定义的TYPE常量常量
1 加速度传感器 TYPE_ACCELEROMETER
2 温度传感器 TYPE_AMBIENT_TEMPERATURE
3 陀螺仪传感器 TYPE_GYROSCOPE
4 光线传感器 TYPE_LIGHT
5 磁场传感器 TYPE_MAGNETIC_FIELD
6 压力传感器 TYPE_PRESSURE
7 临近传感器 TYPE_PROXIMITY
8 湿度传感器 TYPE_RELATIVE_HUMIDITY
9 方向传感器 TYPE_ORIENTATION
10 重力传感器 TYPE_GRAVITY
11 线性加速传感器 TYPE_LINEAR_ACCELERATION
12 旋转向量传感器 TYPE_ROTATION_VECTOR
((3))SensorEvent类类
系统使用该类创建传感器事件对象。该对象可以提供与传感器事件有关的信息。传感器事件对象包括的信息有原始的传感器回
传数据、传感器类型、数据的精度以及触发事件的时间。
((4))SensorEventListener接口接口
该接口包含两个回调方法,当传感器的回传值或精度发生变化时,系统会调用这两个回调方法。
/**
* 传感器精度变化时回调
*/
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
/**
* 传感器数据变化时回调
*/
@Override
public void onSensorChanged(SensorEvent event) {
}
到了这里,我们就可以进行传感器开发工作了。
3.获取传感器技术参数获取传感器技术参数
下来我们编写代码来获取一下自己手机的传感器技术参数。
TextView tvSensors = (TextView) findViewById(R.id.tv_sensors);
//获取传感器SensorManager对象
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : sensors) {
tvSensors.append(sensor.getName() + "\n");
}
先运行一下看看效果:
剩余6页未读,继续阅读
资源评论


weixin_38519082
- 粉丝: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 市政工程资料表格(完整版).doc
- 医药公司部门职能划分.doc
- 子公司人事管理实施细则.doc
- 医院信息化效益分析.doc
- 西门子PLC课程设计三相六拍步进电动机控制程序的设计与调试.pdf
- 如何提高观察能力和推理能力.docx
- 过程管理手册网络安全及其在校园网中的应用.doc
- 幼儿园音乐课程游戏化探索与研究.doc
- 财务人员个人求职简历.doc
- 机械租赁使用管理制度汇总.doc
- 斯达康杭州研发生产中心段多功能厅大体积混凝土工程施工方案.doc
- 广告宣传费用巧筹划三个方案.doc
- 04.会计凭证.doc
- 行政管理本科社会实践调查报告.doc
- 开题报告答辩基于RS和GIS的宜昌市城市扩张研究.pptx
- 中班幼儿行为习惯养成评价表.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
