Android特色開發(fā)之傳感器和語音識別
Android特色開發(fā)
本文引用地址:http://www.ex-cimer.com/article/162471.htmAndroid 是一個面向應用程序開發(fā)的豐富平臺,它擁有許多具有吸引力的用戶界面元素、數(shù)據(jù)管理和網(wǎng)絡應用等優(yōu)秀的功能。Android 還提供了很多頗具特色的接口。本文我們將分別介紹這些吸引開發(fā)者眼球的特色開發(fā),主要包括:傳感器系統(tǒng)(Sensor)、語音識別技術(shù)(RecognizerIntent)、Google Map和用來開發(fā)桌面的插件(Widget)。通過本文的學習,讀者將對Android有一個更深入的了解,可以開發(fā)出一些有特色、有創(chuàng)意的應用程序。
一 傳感器
據(jù)調(diào)查,2008年全球傳感器銷售額為506億美元,預計到2010年全球傳感器銷售額可達600億美元以上。調(diào)查顯示,東歐、亞太區(qū)和加拿大成為傳感器市場增長最快的地區(qū),而美國、德國、日本依舊是傳感器市場分布最大的地區(qū)。就世界范圍而言,傳感器市場增長最快的領域依舊是汽車,占第二位的是過程控制,當然現(xiàn)在也被廣泛應用于通信。那么,傳感器的定義是什么呢?有哪些種類的傳感器呢?Android中提供了哪些傳感器呢?
1.傳感器的定義
傳感器是一種物理裝置或生物器官,能夠探測、感受外界的信號、物理條件(如光、熱、濕度)或化學組成(如煙霧),并將探知的信息傳遞給其他裝置或器官。國家標準GB7665—87對傳感器的定義是:“能感受規(guī)定的被測量并按照一定的規(guī)律轉(zhuǎn)換成可用信號的器件或裝置,通常由敏感元件和轉(zhuǎn)換元件組成”。傳感器是一種檢測裝置,能感受被測量的信息,并能將檢測的感受到的信息,按一定規(guī)律變換成為電信號或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、顯示、記錄和控制等要求。它是實現(xiàn)自動檢測和自動控制的首要環(huán)節(jié)。
2.傳感器的種類
可以從不同的角度對傳感器進行分類:轉(zhuǎn)換原理(傳感器工作的基本物理或化學效應);用途;輸出信號類型以及制作材料和工藝等。
根據(jù)工作原理,傳感器可分為物理傳感器和化學傳感器兩大類。
物理傳感器應用的是物理效應,諸如壓電效應,磁致伸縮現(xiàn)象,離化、極化、熱電、光電、磁電等效應。被測信號量的微小變化都將轉(zhuǎn)換成電信號。
化學傳感器包括那些以化學吸附、電化學反應等現(xiàn)象為因果關系的傳感器,被測信號量的微小變化也將轉(zhuǎn)換成電信號。
大多數(shù)傳感器是以物理原理為基礎運作的?;瘜W傳感器的技術(shù)問題較多,例如可靠性問題、規(guī)模生產(chǎn)的可能性、價格問題等,解決了這些問題,化學傳感器的應用將會有巨大增長。而有些傳感器既不能劃分為物理類,也不能劃分為化學類。
3.Android中傳感器的種類
Google Android操作系統(tǒng)中內(nèi)置了很多傳感器,比如G1自帶了一個非常實用的加速感應器(微型陀螺儀),有了它,G1手機就支持重力感應、方向判斷等功能,在部分游戲或軟件中可以自動識別屏幕的橫屏、豎屏方向來改變屏幕顯示布局。下面是Android中支持的幾種傳感器:
Sensor.TYPE_ACCELEROMETER:加速度傳感器。
Sensor.TYPE_GYROSCOPE:陀螺儀傳感器。
Sensor.TYPE_LIGHT:亮度傳感器。
Sensor.TYPE_MAGNETIC_FIELD:地磁傳感器。
Sensor.TYPE_ORIENTATION:方向傳感器。
Sensor.TYPE_PRESSURE:壓力傳感器。
Sensor.TYPE_PROXIMITY:近程傳感器。
Sensor.TYPE_TEMPERATURE:溫度傳感器。
下面我們通過一個例子來分析Android中傳感器的使用(具體實現(xiàn)參見本書所附代碼:第9章 Examples_09_01),這里分析的是方向傳感器(TYPE_ORIENTATION)。
4.Android 中傳感器的功能
要在Android中使用傳感器,首先需要了解SensorManager和SensorEventListener。顧名思義,SensorManager就是所有傳感器的一個綜合管理類,包括了傳感器的種類、采樣率、精準度等。我們可以通過getSystemService方法來取得一個SensorManager對象。代碼如下:
SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
取得SensorManager對象之后,可以通過getSensorList方法來獲得我們需要的傳感器類型,保存到一個傳感器列表中。通過如下代碼可以得到一個方向傳感器:
List
要與傳感器交互,應用程序必須注冊以偵聽與一個或多個傳感器相關的活動。Android中提供了registerListener來注冊一個傳感器,并提供了unregisterListener來卸載一個傳感器。registerListener方法包括3個參數(shù):第1個參數(shù),接收信號的Listener實例;第2個參數(shù),想接收的傳感器類型的列表(即上一步創(chuàng)建的List
評論