編輯:高級開發
android手機操作系統是一款開源的操作系統,可以讓用戶靈活的進行編程來滿足自己的各種需求。那麼在學習這一系統之前,先讓我們一起來了解一下android傳感器的相關應用。這兩天結合手機研究了下android傳感器編程,現做一個小結:
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. android傳感器相關的類在SDK1.1和SDK1.5中不一樣,因此實現代碼也不一樣
5. 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
准確性: 高、低、中、不可靠。
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
要注意的是android傳感器中的常數和ActivityInfo的不一樣,0是直的,1是橫的。然後因為每次改變螢幕方向都會引發一連串的onPause, onDestory, onCreate,所以需要的處理全部寫在onCreate裡面就大功告成。
雖然android手機操作系統是設計初衷是智能手機平台,不過已經有數家筆記本和數碼相框廠商對android系統進行了嘗試,並嘗試在他們的領域去進行深一步的拓展該項業務。
android 2.3已經於上周正式發布了。51CTO也已經給大家介紹了android 2.3 SDK的下載地址和如何安裝android 2.3 SDK。具體如何下載安
一、背景和准備 1.android 簡介android是谷歌於2007年11月5日宣布的基於Linux平台的開源手機操作系統的名稱,該平台由操作系統、中間件、用戶界面和
Google已經發布了android SDK 2.3版本,大家應該都在等android 2.3的升級吧?在51CTO獨家公布了android SDK 2.3下載地址後.