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 ...
随机推荐
- CentOS 7 安装MySQL 5.6遇到问题及解决方案
centos下安装mysql真的没有想象中那么容易,在这里我总结一下遇到的问题 1. ERROR 2002 (HY000): Can’t connect to local MySQL server t ...
- nginx负载均衡及详细配置
接上篇nginx配置,然后再准备两台web服务器: nginx服务器:192.168.0.241 web1:192.168.0.141 web2:192.168.0.142 一.两台web服务器先安装 ...
- 获得只有 [年 月 日] 的Date 对象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String sDate = sim ...
- display:none
$("#loadimg").css("display",""); <span id="loadimg" clas ...
- 好用的jquery.animateNumber.js数字动画插件
在做公司的运营报告页面时,有一个数字累计增加的动画效果,一开始,毫无头绪,不知如何下手,于是上网查资料,发现大多都是用的插件来实现的,那么今天,我也来用插件jquery.animateNumber.j ...
- Redis Cluster集群主从方案
本文介绍一种通过Jedis和Cluster实现Redis集群(主从)的高可用方案,该方案需要使用Jedis2.8.0(推荐),Redis3.0及以上版本(强制). 附:Redis Cluster集群主 ...
- 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器
使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...
- 南京邮电大学java程序设计作业在线编程第五次作业
王利国的"Java语言程序设计第5次作业(2018)"详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:50 1. 以下哪一个工具是Java的编译器?( ) A. ...
- 【if...else】身高预测
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传.饮食习惯与体育锻炼等.小孩成人后的身高与其父母的身高和自身的性别密切相关.设faHei ...
- Django网站制作
创建mysite目录 django-admin.py startproject mysite这个命令作用是:这将创建在当前目录创建一个mysite目录 前提是从命令行上cd到你想储存你代码的目录,然后 ...