Android的传感器编程小结

    技术2022-05-19  21

    这两天结合手机研究了下Android的传感器编程,现做一个小结:

    (手机是G2 Magic,OS版本1.1)

     

    传感器编程中,

    1. Accelrator的x,y,z轴的正负向:    手机屏幕向上水平放置时: (x,y,z) =  (0, 0, -10)  而不是 (0, 0, 10)    当手机顶部抬起时: y减小,且为负值

       当手机底部抬起时: y增加,且为正值

       当手机右侧抬起时: x减小,且为负值

       当手机左侧抬起时: x增加,且为正值

    2.  Accelrator的z轴的变化:        手机屏幕向上水平放置时,z= -10

           手机屏幕竖直放置时,    z= 0

           手机屏幕向下水平放置时,z= 10

    3.  当x变为+5时, 手机画面切换为竖向         当x变为-5时, 手机画面切换为横向

    4.  传感器相关的类在SDK1.1和SDK1.5中不一样,因此实现代码也不一样

    5. 传感器类型分为:方向、加速表、光线、磁场、临近性、温度等     程序中分别为:         方向:   SensorManager.SENSOR_ORIENTATION,            加速表: SensorManager.SENSOR_ACCELEROMETER         光线:    SensorManager.SENSOR_LIGHT         磁场:   SensorManager.SENSOR_MAGNETIC_FIELD         临近性: SensorManager.SENSOR_PROXIMITY         温度:   SensorManager.SENSOR_TEMPERATURE

       采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对传感器子系统的一个提示 

       ,或者一个建议。不保证特定的采样率可用。         最快:     SensorManager.SENSOR_DELAY_FASTEST         游戏:     SensorManager.SENSOR_DELAY_GAME         普通:     SensorManager.SENSOR_DELAY_NORMAL         用户界面: SensorManager.SENSOR_DELAY_UI

       准确性: 高、低、中、不可靠。

    6. Orientation Sensor三个坐标的含义:    values[0]:方位角(水平旋转角),简单的说就是手机的头现在朝向哪个方位,0=北、90=东、180=南、270 

      =西(可是好像不太准)    values[1]:纵向旋转角,0=面朝上平置、-90=垂直向上、-180/180=面朝下平置、90=垂直向下    values[2]:橫向旋转角,0=朝前、90=往右倒、-90=往左倒

    7. 自動偵測手機方向

    要讓手機自動旋轉的話,只要在AndroidManifest.xml裡面把ORIENTAION改成sensor就好,可是要讓Activity偵測到

    方向改變的話,要去抓Activity的Display:

    if (getWindowManager().getDefaultDisplay().getOrientation() == 0) {   //Do some portrait } else {   //Do some Landscape

    要注意的是這裡的常數和ActivityInfo的不一樣,0是直的,1是橫的。

    然後因為每次改變螢幕方向都會引發一連串的onPause, onDestory, onCreate,所以需要的處理全部寫在onCreate裡

    面就大功告成。

     

    参考资料:

    1. 深入探讨 Android 传感器     http://www.ibm.com/developerworks/cn/opensource/os-android-sensor/index.html#download

    2. Android应用开发实战:GPS与加速度传感器    http://www.lupaworld.com/263077/viewspace-137400.html

     

    转自:http://www.cnblogs.com/nio-nio/archive/2009/10/23/1588610.html


    最新回复(0)