Android传感器概述-android学习之旅(七)
传感器概述
传感器是第二代智能手机的重要标志之一。现在许多的手机和平板都内置了传感器(tv除外)。android的SDK支持许多的传感器有十几种,但是手机只是支持一部分。例如方向传感器(电子罗盘)和重力传感器(屏幕翻转)。
大概分为三类
- 动作传感器
- 环境传感器‘
- 位置传感器
动作传感器
这类传感器在三个轴(x,y,z)上测量加速度和旋转角度。包括如下几个传感器。
- 加速传感器
- 重力传感器
- 陀螺仪传感器
- 旋转向量传感器
环境传感器
- 湿度传感器’
- 光线传感器
- 温度传感器
位置传感器
- 方向传感器
- 磁力传感器
android sensor Framework
android SDK内置了android sensor Framework ,可以访问android设备内置的传感器,ASF提供了许多类和接口,可以帮助我们完后才那个许多工作。
- 确定android设备内置二等传感器
- 确定一个传感器的技术指标,例如测量范围,精度,制造商和精度
- 获取传感器传回来的数据
- 注册和注传感器监听事件,用于监听传感器的变化,通常回传的数据要通过这些监听器完成。
硬件传感器和软件传感器
ASF允许我们访问许多的传感器类型,有基于硬件的也有给予偶软件的,
硬件传感器是基于硬件的传感器,直接以芯片的形式嵌入到Android设备中,这些传感器从外部获取数据,例如加速传感器和磁场传感器。
软件传感器不是基于硬件的,传回的数据本质上基于对基于硬件传感器的二次加工,可能来源于一个或多个硬件传感器,也有可能使用了特定的算法处理了这些数据。
ASF支持的传感器
ASF中的主要类和接口
- Sensor Manager :用于创建Sonsor Service的实例。该类提供了很多用于访问和枚举传感器,注册和注销传感器饿方法。而且还提供了与传感器精度,扫描频率,校正有关的量。
- Sensor类:提供了一些用于获取传感器技术参数的方法。如版本和类型,生产商。
- SensorEvent类:创建传感器时间对象,时间可以传递与传感器有关的数据,类型,精度以及触发时间等。
- SensorEventListene接口:当出传感器的回传值或者精度变化时,系统会调用。
获取android设备支持的传感器实例
代码如下;
public class MainActivity extends Activity {
private TextView tvSensor;
private SensorManager sensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvSensor = (TextView) findViewById(R.id.tvSensor);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> list = sensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : list) {
tvSensor.append(sensor.getName()+"\n");
}
}
}
效果图:
Android传感器概述-android学习之旅(七)的更多相关文章
- Android自制浏览器WebView-android学习之旅(64)
简单讲解如何使用WebView加载百度的网页 acticity代码 public class MainActivity extends Activity { private WebView webVi ...
- Android万能适配器Adapter-android学习之旅(74)
万能适配器的代码的github地址是https://github.com/fengsehng/CommonAdapter 万能适配器的代码的github地址是https://github.com/fe ...
- Android传感器概述(六)
监视传感器事件 要监视原始的传感器数据,你须要实现两个通过SensorEventListener接口暴露的回调方法:onAccuracyChanged()和onSensorChanged().Andr ...
- Android studio使用git-android学习之旅(79)
首先我参考了hello_my_show和梦痕_sky的博客,表示感谢 android studio对于git的支持是很好的,这节课我们拉讲解怎么使用git可视化工具来clone project和提交修 ...
- Android为什么使用Binder-android学习之旅(101)
基础知识 Android进程和linux进程一样,他们只运行在进程固有的虚拟空间中.一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间 ,用户空间是非共享的,内核空间是共享的,如下图: ...
- Android首选项SharedPreference-android学习之旅(六)
SharedPrefenence采用的键值对的方式来进行存储,采用内部存储的方式. 实例 public class MainActivity extends Activity { private Sh ...
- Servlet概述-servlet学习之旅(一)
Servlet概述 servlet是server+applet的缩写.applet是运行于客户端浏览器的java小程序,java诞生的时候,因为applet而闻名于世,但是现在已经没有多少热使用了,而 ...
- 我的Go语言学习之旅七:创建一个GUI窗口
在上次中,刚刚学过了 弹窗效果.这里再接着学习一下怎样创建一个窗口. 还是老路子,先上代码: package main import ( "github.com/lxn/go-winapi ...
- [原创] zabbix学习之旅七:如何远程操作被监控机器
虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让z ...
随机推荐
- hdu 5724 SG+状态压缩
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- POJ1509 Glass Beads
Glass Beads Time Limit: 3000MS Memory Limit: 10000K Total Submissions: 4314 Accepted: 2448 Descr ...
- DS4700电池更换步骤
DS4700电池更换步骤: 在A控制器里操作(带电热插拔控制器)对逻辑盘进行切换: (需要先将A控下挂的硬盘手工切换到B控上.然后对A控进行电池更换,更换完成后再将原A控下挂硬盘切回) 如下详细步骤: ...
- 用js来实现那些数据结构12(散列表)
上一篇写了如何实现简单的Map结构,因为东西太少了不让上首页.好吧... 这一篇文章说一下散列表hashMap的实现.那么为什么要使用hashMap?hashMap又有什么优势呢?hashMap是如何 ...
- mysql常见的优化需要注意的点
1.explain分析explian引用索引基数show indexes from table_name;主键索引具有最好的基数 测试时 不走缓存SELECT SQL_NO_CACHE id from ...
- 听说图像识别很难,大神十行代码进行Python图像识别
随着深度学习算法的兴起和普及,人工智能领域取得了令人瞩目的进步,特别是在计算机视觉领域.21世纪的第二个十年迅速采用卷积神经网络,发明了最先进的算法,大量训练数据的可用性以及高性能和高性价比计算的 ...
- python学习之路基础篇(第七篇)
一.模块 configparser configparser用于处理特定格式的文件,其本质是利用open来对文件进行操作 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [ ...
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
上篇博客使用Spring Boot开发Web项目我们简单介绍了使用如何使用Spring Boot创建一个使用了Thymeleaf模板引擎的Web项目,当然这还远远不够.今天我们再来看看如何给我们的We ...
- 激活第一个CPU
回到start_kernel,559行,boot_cpu_init函数,跟start_kernel位于同一文件: 494static void __init boot_cpu_init(void) 4 ...
- Programming In Scala笔记-第十五章、Case Classes和模式匹配
本章主要分析case classes和模式匹配(pattern matching). 一.简单例子 接下来首先以一个包含case classes和模式匹配的例子来展开本章内容. 下面的例子中将模拟实现 ...