2011-03-18 22:26:57| 分类: Android 学习总结 | 标签:无 |字号 订阅
最近的工作是调平板电脑G-sensor相关程序,使之能在四个方向转屏的基础上还能玩各种重力感应游戏。现在的状态是有重力感应游戏A和B,本来是A重力向下B重力“向上”,改了之后是B重力向下A重力“向上”。而在windowOrientationListener.java中的OnSensorChanged()中获取XYZ坐标已经在中间层Sensor.c中调到对应的值(使转屏的功能正常)。
后来在一篇参考文章中看到 Android传感器类型分为:方向、加速表、光线、磁场、临近性、温度等
程序中分别为:
方向: SensorManager.SENSOR_ORIENTATION,
加速表: SensorManager.SENSOR_ACCELEROMETER
光线: SensorManager.SENSOR_LIGHT
磁场: SensorManager.SENSOR_MAGNETIC_FIELD
临近性: SensorManager.SENSOR_PROXIMITY
温度: SensorManager.SENSOR_TEMPERATURE
采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对Android传感器子系统的一个提示,或者一个建议。不保证特定的采样率可用。
最快: SensorManager.SENSOR_DELAY_FASTEST
游戏: SensorManager.SENSOR_DELAY_GAME
普通: SensorManager.SENSOR_DELAY_NORMAL
用户界面: SensorManager.SENSOR_DELAY_UI
准确性: 高、低、中、不可靠。
而之所以会出现重力向上的问题可能是由于没有方向传感器的原因。
PS:加速度和磁场传感器一起可以实现方向传感器
Orientation Sensor三个坐标的含义:
values[0]:方位角(水平旋转角),简单的说就是手机的头现在朝向哪个方位,0=北、90=东、180=南、270=西(可是好像不太准)
values[1]:纵向旋转角,0=面朝上平置、-90=垂直向上、-180/180=面朝下平置、90=垂直向下
values[2]:橫向旋转角,0=朝前、90=往右倒、-90=往左倒