Android Sensors (6) 位置传感器 Position Sensors

 

位置传感器Position Sensors

  

  Android平台提供了两种决定设备位置的传感器:

  地磁场传感器方向传感器(the geomagnetic field sensor and the orientation sensor)。

  还有一种传感器用于检测设备正面和其他物体的距离,叫做接近传感器(proximity sensor)。

  地磁场传感器和接近传感器是基于硬件的。

  方向传感器是基于软件的,它的数据是根据加速度计和地磁场传感器导出的。

  但是方向传感器自从Android 2.2 (API Level 8)开始就被废弃了。

  位置传感器也是返回一个多维向量,放在 SensorEvent中的values数组中。

  返回值见表:

 

方向传感器Orientation Sensor

  方向传感器是根据地磁场传感器加速度计推导出输出数据的。

  使用这两个硬件传感器,方向传感器为下面三个方向提供了数据:

  1. Azimuth:绕Z轴旋转的度数。这是设备的y轴和地磁场北极的夹角。比如,设备的y轴指向东,这个度数就为90。

  2. Pitch:绕X轴旋转的度数。当设备的z轴朝着y轴正向旋转时,这个值是正值,反之,当设备的z轴朝着y轴的负向旋转时,这个值为负值。它的取值范围是-180到180。

  3. Roll:绕Y轴旋转的度数。当设备的z轴朝着x轴正向旋转时,这个值是正值,反之,当设备的z轴朝着x轴的负向旋转时,这个值为负值。它的取值范围是-90到90。

 

  注意这个定义是非常特殊的,因为它在顺时针旋转的时候是正值,而数学上总是逆时针为正值。

  因为方向传感器需要大量的处理运算,所以它的准确度和精度都有所下降。后来,自Android 2.2 (API level 8),方向传感器被废弃。

  官方建议使用下面的方法:

  利用getRotationMatrix()结合getOrientation()方法可以计算方向值。

  还可以利用remapCoordinateSystem()把方向值转换到你的应用的参考坐标系。

 

地磁场传感器Geomagnetic Field Sensor

  地磁场传感器监测地球地磁场变化。

  传感器提供三个坐标上的原始的磁场强度值(in μT)。

  一般情况下,你不需要直接使用这个传感器,你可以使用旋转向量传感器来决定原始的旋转运动;你也可以使用加速度计和地磁场传感器并结合getRotationMatrix()方法来获得旋转矩阵和倾斜矩阵。

  你可以结合 getOrientation()和 getInclination() 方法来使用这些矩阵,从而得到方位和地磁场偏移数据。

 

接近传感器Proximity Sensor

  接近传感器可以让你得到设备离另一个物体的距离。

  接近传感器通常用于检测设备正面和用户头部的距离,比如用户正在打电话。

  大多数Proximity Sensor返回绝对的距离数值,以cm为单位。但是也有一些只返回近或者远。

 

参考资料

  API Guides: Position Sensors

  http://developer.android.com/guide/topics/sensors/sensors_position.html

 

posted @   圣骑士wind  阅读(3717)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示