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 ...
随机推荐
- 2015 多校联赛 ——HDU5344(水)
Problem Description MZL loves xor very much.Now he gets an array A.The length of A is n.He wants to ...
- 【Uva 11280 飞到弗雷德里顿】
·你可以尽情地坐飞机,但停留次数遭到限制. ·英文题,述大意: 给出一张有向图,起点是输入的第一个城市,终点是输入的最后一个城市.给出q个询问,每个询问含一个t,表示 #include&l ...
- hdu5635 BestCoder Round #74 (div.2)
LCP Array Accepts: 131 Submissions: 1352 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 13 ...
- Scrapy框架
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...
- win10下python环境变量设置
我用的是python_2.7.3.msi,从官网下载之后,一路按照默认进行安装. 安装之后配置环境变量的步骤如下: 1,点“我的电脑”,右键选“属性” 2,选择“高级系统设置”--->选“环境变 ...
- Server-U FTP与AD完美集成方案详解
最近咱有个任务,那就是把公司的文件服务器.FTP服务器.邮件服务器进行迁移并作相应的整合.登陆后台查看了,公司目前正在使用的方案.FTP服务器使用的是Server-u FTP,验证方式选择的windo ...
- Safari 3D transform变换z-index层级渲染异常
(猛戳来源:http://www.zhangxinxu.com/wordpress/?p=5569)
- AleNet模型笔记
谁创造了AlexNet? AlexNet是有Hinton大神的弟子Alex Krizhevsky提出的深度卷积神经网络.它可视为LeNet的更深更宽的版本. AlexNet主要用到的技术 成功使用Re ...
- A potentially dangerous Request.Form value was detected from the client问题处理
问题剖析: 用户在页面上提交表单到服务器时,服务器会检测到一些潜在的输入风险,例如使用富文本编辑器控件(RichTextBox.FreeTextBox.CuteEditor等)编辑的内容中包含有HTM ...
- leetcode刷题笔记342 4的幂
题目描述: 给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂. 示例:当 num = 16 时 ,返回 true . 当 num = 5时,返回 false. 问题进阶:你能不使 ...