Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android系列之Andorid傳感器應用編程

Android系列之Andorid傳感器應用編程

編輯:Android開發實例

A傳感器編程中,

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裡

轉自:http://www.cnblogs.com/jk1001/archive/2010/08/09/1796065.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved