Android中的方向传感器在生活中是一个很好的应用,典型的例子是指南针的使用,我们先来简单介绍一下传感器中三个参数x,y,z的含义,以一幅图来说明。
                                     图 1 
补充说明:图中的坐标轴x,y,z和传感器中的X,Y,Z没有任何联系!
如上图所示,绿色部分表示一个手机,带有小圈那一头是手机头部
传感器中的X:如上图所示,规定X正半轴为北,手机头部指向OF方向,此时X的值为0,如果手机头部指向OG方向,此时X值为90,指向OH方向,X值为180,指向OE,X值为270
传感器中的Y:现在我们将手机沿着BC轴慢慢向上抬起,即手机头部不动,尾部慢慢向上翘起来,直到AD跑到BC右边并落在XOY平面上,Y的值将从0~180之间变动,如果手机沿着AD轴慢慢向上抬起,即手机尾部不懂,直到BC跑到AD左边并且落在XOY平面上,Y的值将从0~-180之间变动,这就是方向传感器中Y的含义。
传感器中的Z:现在我们将手机沿着AB轴慢慢向上抬起,即手机左边框不动,右边框慢慢向上翘起来,直到CD跑到AB右边并落在XOY平面上,Z的值将从0~180之间变动,如果手机沿着CD轴慢慢向上抬起,即手机右边框不动,直到AB跑到CD左边并且落在XOY平面上,Z的值将从0~-180之间变动,这就是方向传感器中发Z的含义。
了解了方向传感器中X,Y,Z的含义之后下面我们就开始学习如何使用
首先我们创建一个传感器管理器和一个传感器监听器,管理器用来管理传感器以及创建各种各样的传感器,监听器用来监视传感器的变化并且进行相应的操作
private SensorManager sensorManager;
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
private MySensorEventListener mySensorEventListener;
mySensorEventListener= new MySensorEventListener();//这个监听器当然是我们自己定义的,在方向感应器感应到手机方向有变化的时候,我们可以采取相应的操作,这里紧紧是将x,y,z的值打印出来
private final class MySensorEventListener implements  SensorEventListener{
@Override
//可以得到传感器实时测量出来的变化值
public void onSensorChanged(SensorEvent event) {
//方向传感器
if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){
//x表示手机指向的方位,0表示北,90表示东,180表示南,270表示西
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
//tv_orientation是界面上的一个TextView标签,不再赘述
tv_orientation.setText("Orientation:"+x+","+y+","+z);
}
}

我们在onResume方法中创建一个方向传感器,并向系统注册监听器
protected void onResume() {
    Sensor sensor_orientation=sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
    sensorManager.registerListener(mySensorEventListener,sensor_orientation, SensorManager.SENSOR_DELAY_UI);
super.onResume();
}

最后我们在onPause()中注销所有传感器的监听,释放方向感应器资源!
protected void onPause() {
//注销所有传感器的监听
sensorManager.unregisterListener(mySensorEventListener);
super.onPause();
}
到此,有关方向传感器的介绍完毕!

Android开发之方向传感器的使用相关推荐

  1. android开发中磁场传感器,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

  2. android开发中磁场传感器,Android传感器(加速度传感器,磁场传感器,光线传感器,方向传感器)...

    [android]代码库package mobile.android.sensor; import java.util.List; import android.app.Activity; impor ...

  3. Android开发之重力传感器

    重力传感器与方向传感器的开发步骤类似,只要理清了期中的x,y,z的值之后就可以根据他们的变化来进行编程了,推荐学习Android应用开发入门教程. 首先来看一副图 假设当地的重力加速度值为g 当手机正 ...

  4. android系统重力感应传感器 方向控制与方向切换,android sensor orientation 方向传感器 重力感应...

    首先,获取方向传感器(参照http://developer.android.com/reference/android/hardware/SensorManager.html): publicclas ...

  5. Android传感器之-方向传感器Orientation功能实现与源码

    先明确一下空间坐标系的三个方向: x 方向就是手机的水平方向,右为正: y 方向就是手机的水平垂直方向,前为正: z 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负. 方向角的定义是手机y ...

  6. 百度地图的简单开发之方向传感器实现定位功能

    今天我们来谈下百度地图的定位功能,在此之前我已经将百度地图的基本地图大概说了下,其实百度地图的基本功能还有很多的内容.感兴趣的可以到百度地图的开发者的官网看看.今天就开始来讲下百度地图中的定位功能. ...

  7. 百度地图开发(七)方向传感器指向方向--指南针

    效果图: 用到的小图,自行下载: 原理就是利用方向传感判断机头方向传值给定位: 方向传感代码: import android.content.Context; import android.hardw ...

  8. Android 传感器之方向传感器

    一般情况下,在android系统中获取手机的方位信息在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaultSensor(Sensor.TY ...

  9. Android实例-OrientationSensor方向传感器(XE8+小米2)

    相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...

  10. android开发中磁场传感器,Android NDK中的陀螺仪和磁场传感器事件

    看一下传感器的头文件: ANDROID-NDK-ROOT-DIR/platforms/android-/arch-arm/usr/include/android/sensor.h typedef st ...

最新文章

  1. [JS]题解 | #岛屿数量#
  2. nginx日志问题解决方法记录
  3. 数据库-ADONET-在数据集DataSet中使用关系对象DataRelation处理关系
  4. 阻塞IO模型-数据读写
  5. 洛谷P2056:[ZJOI2007]捉迷藏(点分树、STL)
  6. 【动态规划】公共子串
  7. java的BASE64Encoder,BASE64Decoder加密与解密
  8. C语言实现ICMP协议,并进行PING测试
  9. Javascript隐式数据类型转换(==、+、Object)
  10. HDU1996 汉诺塔VI【水题】
  11. 微软软件开发技术二十年回顾(MFC篇)
  12. directx修复工具v3.2增强版_「电脑知识」USBOS 超级PE启动维护工具增强版及标准版...
  13. Springboot使用Curator 集成zk
  14. 数据中台全景架构及模块解析!一文入门中台架构师!
  15. extern 用法详解
  16. HTML5文件夹隐藏了怎么打开,隐藏的文件夹怎么显示 打开隐藏文件夹方法【详解】...
  17. Primeton EOS开发配置
  18. java内部类继承类_java内部类基础(内部类继承关系 或外部类整体继承)
  19. 【操作系统安装】Vmware 安装Ubuntu 20.04
  20. matlab 重复博弈,横向稳定杆的侧倾角刚度仿真与试验研究

热门文章

  1. SAP开发入门-ABAP
  2. AES加解密原理详解与算法实现
  3. CodeForces - 32C Flea【数学】
  4. 319. 灯泡开关【我亦无他唯手熟尔】
  5. 创办6年未盈利,半年亏损40亿裁员25%,狂奔的滴滴怎么了?
  6. nyoj-1182旅游【三进制状态压缩dp】
  7. Android初级教程 - 四大存储之SP存储
  8. ajax串数组包含双引号,解决AJAX请求中含有数组的办法
  9. 【Java】认识Sring、String的常见操作和StringBuffer 和StringBuilder的区别【字符串详解】
  10. 【paddlepaddle安装报错系列】Installing collected packages :OpenCV-python ERROR :After october 2020 you…