EDN China > 技术文章 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

入门专用,Android应用程序中常用传感器的使用

移动开发者社区?? 2015年02月09日 ?? 收藏1

1.5 陀螺仪传感器

陀螺仪传感器的类型常量是Sensor.TYPE_GYROSCOPE。values数组的三个元素表示的含义如下:values[0]:延X轴旋转的角速度。

values[1]:延Y轴旋转的角速度。

values[2]:延Z轴旋转的角速度。

当手机逆时针旋转时,角速度为正值,顺时针旋转时,角速度为负值。陀螺仪传感器经常被用来计算手机已转动的角度,代码如下:

private static final float NS2S = 1.0f / 1000000000.0f;

private float timestamp;

public void onSensorChanged(SensorEvent event)

{

if (timestamp != 0)

{

// event.timesamp表示当前的时间,单位是纳秒(1百万分之一毫秒)

final float dT = (event.timestamp - timestamp) * NS2S;

angle[0] += event.values[0] * dT;

angle[1] += event.values[1] * dT;

angle[2] += event.values[2] * dT;

}

timestamp = event.timestamp;

}

上面代码中通过陀螺仪传感器相邻两次获得数据的时间差(dT)来分别计算在这段时间内手机延X、 Y、Z轴旋转的角度,并将值分别累加到angle数组的不同元素上。

1.6其他传感器

其他传感器在前面几节介绍了加速度传感器、重力传感器、光线传感器、陀螺仪传感器以及方向传感器。除了这些传感器外,Android SDK还支持如下的几种传感器。关于这些传感器的使用方法以及与这些传感器相关的常量、方法,读者可以参阅官方文档。

近程传感器(Sensor.TYPE_PROXIMITY)

线性加速度传感器(Sensor.TYPE_LINEAR_ACCELERATION)

旋转向量传感器(Sensor.TYPE_ROTATION_VECTOR)

磁场传感器(Sensor.TYPE_MAGNETIC_FIELD)

压力传感器(Sensor.TYPE_PRESSURE)

温度传感器(Sensor.TYPE_TEMPERATURE)

虽然AndroidSDK定义了十多种传感器,但并不是每一部手机都完全支持这些传感器。例如,Google Nexus S支持其中的9种传感器(不支持压力和温度传感器),而HTC G7只支持其中的5种传感器。如果使用了手机不支持的传感器,一般不会抛出异常,但也无法获得传感器传回的数据。读者在使用传感器时最好先判断当前的手机是否支持所使用的传感器。

【values变量的元素在主要的传感器中所代表的含义】


上一页123456下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

Android? 传感器? 应用程序? 开发?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈