Sensor
原理:http://blog.csdn.net/xiaolei05/article/details/18670161
1.Sensor Type
重力感应/加速度传感器
(G-Sensor)
光感应 (Light-Sensor)
温度感应
方向感应
磁场、
临近性
2.如何实现Sensor编程
a. 获取系统服务(SENSOR_SERVICE)返回一个SensorManager
对象
sensormanager =
(SensorManager)getSystemSeriver(SENSOR_SERVICE);
b. 通过SensorManager对象获取相应的Sensor类型的对象
sensorObject =
sensormanager.getDefaultSensor(sensor Type);
c. 声明一个SensorEventListener 对象用于侦听Sensor 事件,并重载onSensorChanged方法
SensorEventListener sensorListener = new
SensorEventListener(){ };
d. 注册相应的SensorService
sensormanager.registerListener(sensorListener, sensorObject, Sensor
TYPE);
e. 销毁相应的SensorService
sensormanager.unregisterListener(sensorListener,
sensorObject);
f. SensorListener 接口是传感器应用程序的中心。它包括两个必需方法:
onSensorChanged(int
sensor,float values[]) 方法在传感器值更改时调用。
该方法只对受此应用程序监视的传感器调用(更多内容见下文)。该方法的参数包括:一个整数,指示更改的传感器;一个浮点值数组,表示传感器数据本身。
有些传感器只提供一个数据值,另一些则提供三个浮点值。方向和加速表传感器都提供三个数据值。
g.当传感器的准确性更改时,将调用
onAccuracyChanged(int sensor,int accuracy)
参数包括两个整数:一个表示传感器,另一个表示该传感器新的准确值。
3.关于G-Sensor
Android 加速度传感器的类型是
Sensor.TYPE_ACCELEROMETER
通过 android.hardware.SensorEvent 返回加速度传感器值。
加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是
values[0]: x-axis 方向加速度
values[1]: y-axis 方向加速度
values[2]: z-axis 方向加速度
其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点
x 方向就是手机的水平方向,右为正
y 方向就是手机的水平垂直方向,前为正
z 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负。
需要注意的是,由于地球固有的重力加速度g (值为9.8 m/s^2),因此现实中实际加速度值应该是 z方向返回值 - 9.8
m/s^2.
方向角的定义是手机y轴 水平面上的投影 与 正北方向的夹角。 (值得范围是 0 ~ 359 其中0=North, 90=East, 180=South, 270=West)
倾斜角的定义是手机y轴 与水平面的夹角 (手机z轴向y轴方向移动为正 ,值得范围是 -180 ~ 180)
旋转角的定义是手机x轴 与水平面的夹角 (手机x轴离开z轴方向为正, 值得范围是 -90 ~ 90)
也就是说,当你把手机水平放置在桌面上(屏幕向上)且手机指向正北(Y轴方向),此时传感器获得的xyz三个值应该都为0。
例子:
|
// 获得系统服务 mSenMgr = (SensorManager)getSystemService(SENSOR_SERVICE); // 获得Sensor对象 mGSensor = mSenMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); // 监听Sensor事件 lsn = new SensorEventListener() { @Override public void @Override public void onAccuracyChanged(Sensor arg0, int arg1) {……} }; // 注册SensorService mSenMgr.registerListener(lsn,mGSensor, SensorManager.SENSOR_DELAY_GAME); |
Sensor的更多相关文章
- android 6.0 高通平台sensor 工作机制及流程(原创)
最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...
- (转)CMOS Sensor的调试经验分享
CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...
- FPGA图像处理 两路sensor的色调不一致
怎么调?可以让两路sensor的色调一致.
- Sensor(PROXIMITY)
package com.example.sensor01; import android.hardware.Sensor; import android.hardware.SensorEvent; i ...
- Sensor(LIGHT)
package com.example.sensor01; import java.util.List; import android.hardware.Sensor; import android. ...
- Sensor(GYROSCOPE)
package com.example.sensor01; import java.util.List; import android.hardware.Sensor; import android. ...
- Sensor(ORIENTATION)
package com.example.sensor01; import java.util.List; import android.hardware.Sensor; import android. ...
- Sensor(ACCELEROMETER)
package com.example.sensor01; import java.util.List; import android.hardware.Sensor; import android. ...
- 泛在传感器网络(Ubiquitous Sensor Network; USN)
http://wiki.mbalib.com/wiki/%E6%B3%9B%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E7%BD%91%E7%BB%9C 什么是泛在传感器 ...
- 深入浅出 - Android系统移植与平台开发(十一) - Sensor HAL框架分析之一
作者:唐老师,华清远见嵌入式学院讲师. 1. Sensor的概念 Sensor即传感器,在当前智能手机上大量存在:G-Sensor.LightsSensor. ProximitySensor.Temp ...
随机推荐
- JavaScript DOM操作浅谈
1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript ...
- (转)Java程序员简历模板
本简历模板由国内首家互联网人才拍卖网站「 JobDeer.com 」提供. (括号里的是我们的顾问编写的说明,建议在简历书写完成后统一删除) 先讲讲怎样才是一份好的技术简历 首先,一份好的简历不光说明 ...
- 8Q - 献给杭电五十周年校庆的礼物
我不能参赛,就送给学校一个DOOM III球形大蛋糕吧.等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢? ...
- 20165213 java学习第一周
20165213 -2018-2<Java程序设计>第一周学习总结 教材学习内容总结 java的四个特点:面向对象.平台无关性.动态性.简单. java编写程序步骤:再有jdk的情况下,先 ...
- Python实现的复杂的计算器的代码
用Python实现复杂的计算器,可以按照“()”.乘除.加减的优先级进行混合运算.主旨是对正则表达式进行学习. 设计思路: 1.在计算式中搜索最后一个“(”,再搜索和它匹配的“)”,截取两个括号间的表 ...
- Proxmox Reset Root Password
http://c-nergy.be/blog/?p=1777 Step 1 – Boot your Proxmox VE machine. In the boot menu screen, you s ...
- ECLIPSE使用HG插件去上载 GOOGLE.CODE下的代码
ECLIPSE使用HG插件去上载 GOOGLE.CODE下的代码 www.MyException.Cn 发布于:2012-09-10 22:20:12 浏览:112次 0 ECLIPSE使 ...
- Microsoft translater
professional tranlater tool : https://translator.microsoft.com/neural/
- windows 10 开发学习资料,Windows-universal-samples学习笔记系列一:App settings
windows 10 通用代码范例: https://github.com/Microsoft/Windows-universal-samples 相关视频:https://mix.office.co ...
- java20(判断是否为会员)
1.不确定数组是哪个类型是,将数据类型换成类名 2.记得将判断的参数传到方法中 3.用到类名的: 创建对象时 创建未知类型的数组时 4.创建的对象所用到的名字,体重,判断(boolean isvip ...