传感器(Sensor)系统可以让智能手机的功能更加丰富多彩,在Android系统中支持多种传感器。Android的Sensor系统涉及了Android的各个层次。
Android系统支持多种传感器,有的传感器已经在Android的框架中使用,大多数传感器由应用程序来使用。
Android传感器类型分为加速度、磁场、方向、光线、临近性、温度等,具体的如下表:
传感器
|
JAVA中的名称
|
本地接口名称
|
数值
|
加速度
|
TYPE_ACCELEROMETER
|
SENSOR_TYPE_ACCELEROMETER
|
1
|
磁力域
|
TYPE_MAGNETIC_FIELD
|
SENSOR_TYPE_MAGNETIC_FIELD
|
2
|
方向
|
TYPE_ORIENTATION
|
SENSOR_TYPE_ORIENTATION
|
3
|
陀螺
|
TYPE_GYROSCOPE
|
SENSOR_TYPE_GYROSCOPE
|
4
|
光线(亮度)
|
TYPE_LIGHT
|
SENSOR_TYPE_LIGHT
|
5
|
压力
|
TYPE_PRESSURE
|
SENSOR_TYPE_PRESSURE
|
6
|
温度
|
TYPE_TEMPERATURE
|
SENSOR_TYPE_TEMPERATURE
|
7
|
临近性
|
TYPE_PROXIMITY
|
SENSOR_TYPE_PROXIMITY
|
8
|
在程序中我们可以获取到移动设备上方向传感器、加速度传感器或其他传感器的信息,我们可以根据得到的数值与上一次得到的数值之间的关系来进行需要的操作。在指南针程序中我们主要需要获取方向的数据,因此我们在实验机上做了一个测试,获取了在不同情况下传感数值的变化规律。
下面是我们实验中测试到的数据(由于我们所用实验机HTCG6只支持方向传感器,我们只测试了方向传感器在不同状态下的数值变化关系):
手机状态
|
数值状态
|
数值范围
|
手机水平放置,顶部指向正北方
|
x、y、z方向值为0
|
0
|
水平逆时针旋转
|
x不断减少
|
360~0
|
水平顺时针旋转
|
x不断增大
|
0~360
|
当手机左侧抬起时
|
z不断减少
|
0~-180
|
当手机右侧抬起时
|
z不断增大
|
0~180
|
当手机顶部抬起时
|
y不断减少
|
0~-180
|
当手机底部抬起时
|
y不断增大
|
0~180
|
*注意:实验数据是基于实验机型号(HTCG6),其它型号的设备可能会有所不同。
经过实验,我们发现当手机顶部指向正北方时方向值为0,顶部指向正东方时方向值为90,顶部指向正南方时方向值为180,顶部指向正西方时方向值为270。根据这些数据我们就可以根据方向值的范围盘端当前我们的方位,可以确定指南针的读数。
程序界面非常简洁,一张指南针的图片与相关方位的度数。上方白色小箭头所指方向代表我们当前指向的方向。指南针图片会根据所向方位做出相应的旋转,上方度数也会做出适当的响应,显示当前方位和方向读数。
由于我只考虑在G6上能正常演示,G6的屏幕分辨率为320*480,相关的坐标值我也是根据这个分辨率确定的,移植到其他型号的手机上可能不能正常运行,但只需要修正一下代码就可以,这个希望读者自行修正。
具体步骤如下:
1.首先创建项目SDK版本选择2.1,工程命名为MyCompass
2.添加资源到res/drawable下,一张指南针的图片和白色小箭头图片,格式为透明PNG,注意图片文件名需要小写开头。
3.新建一个CompassView类,用于程序布局设置。
4.新建MyCompass类,这为主程序,在该类中获取传感器信息。
下面附上CompassView类和MyCompass类的代码,同时提供源程序的下载,如果有什么问题的话随时可以与我联系,我的qq:264965161,电子邮箱gsh0913@qq.com,本人非常乐意与大家一起交流,希望大家能共同进步。
源代码的下载地址:http://download.csdn.net/source/2885661
CompassView.java
MyCompass.java
<!--EndFragment-->
<!--EndFragment-->
分享到:
相关推荐
Android开发的两种基于手机传感器的指南针项目 1、基于方向传感器的指南针 2、基于加速度传感器和磁场传感器的指南针 对于获取的传感器数据进行了降噪处理,从而使指南针不会因为外界干扰而抖动
android方向传感器的简明经典例子, G-SENSOR控制, 重力演示, 测试OK。
利用传感器,实现简易指南针,指针转动而方向盘不动。
利用加速度传感器和地磁传感器做的一个简易指南针,里面包含workspace里的项目源文件代码和apk安装文件,适合路痴!
安卓Android源码——精典源码之指南针定位源码.zip
Android游戏开发实践——快乐数独,Android游戏开发实践——快乐数独
一个android指南针小项目,利用android设备的加速度传感器和地磁传感器。
Android中使用传感器实现一个指南针案例!
一个关于Android方向传感器的简单小例子.
Android 方向传感器 简单 demo 使用 androidstudio 环境,代码量很少
安卓Android源码——MIUI指南针.zip
Android手机三轴加速度传感器使用——老年人摔倒无线检测.pdf
实现:1、应用级屏幕亮度随关照强度变化 2、基于计步传感器的简易步数统计 3、基于地磁传感器与加速度传感器的简易指南针
移动操作系统原理与实践——基于Java语言的Android应用开发 目录 基础篇 第1章移动操作系统概论 1.1操作系统的原理与概念 1.1.1隐藏硬件细节 1.1.2资源管理 1.1.3操作系统的历史 1.2操作系统的分类 1.2.1...
Android中文翻译组——Android开发者指南(1)Android中文翻译组——Android开发者指南(1)
Android传感器之摇一摇与指南针
完整的指南针程序,代码清晰。程序界面也很漂亮。学习android的基础架构,传感器开发很好的参考项目。
安卓Android源码——小米系列之小米指南针.zip
3D物理传感器游戏——小球快跑很好玩的小游戏