資源描述:
《android傳感器和位置服務(wù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、Android傳感器和位置服務(wù)傳感器的定義傳感器是一種物理裝置或生物器官,能夠探測(cè)、感受外界的信號(hào)、物理?xiàng)l件(如光、熱、濕度)或化學(xué)組成(如煙霧),并將探知的信息傳遞給其他裝置或器官。國(guó)家標(biāo)準(zhǔn)GB7665-87對(duì)傳感器的定義是:"能感受規(guī)定的被測(cè)量并按照一定的規(guī)律轉(zhuǎn)換成可用信號(hào)的器件或裝置,通常由敏感元件和轉(zhuǎn)換元件組成"。傳感器是一種檢測(cè)裝置,能感受被測(cè)量的信息,并能將檢測(cè)的感受到的信息,按一定規(guī)律變換成為電信號(hào)或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲(chǔ)、顯示、記錄和控制等要求。它是實(shí)現(xiàn)自動(dòng)檢測(cè)和自動(dòng)控制的首要環(huán)節(jié)。傳感器的種類可以從不同的角度對(duì)傳感器進(jìn)行分類:轉(zhuǎn)換原理(傳感器工
2、作的基本物理或化學(xué)效應(yīng));用途;輸出信號(hào)類型以及制作材料和工藝等。 根據(jù)工作原理,傳感器可分為物理傳感器和化學(xué)傳感器兩大類。 物理傳感器應(yīng)用的是物理效應(yīng),諸如壓電效應(yīng),磁致伸縮現(xiàn)象,離化、極化、熱電、光電、磁電等效應(yīng)。被測(cè)信號(hào)量的微小變化都將轉(zhuǎn)換成電信號(hào)。 化學(xué)傳感器包括那些以化學(xué)吸附、電化學(xué)反應(yīng)等現(xiàn)象為因果關(guān)系的傳感器,被測(cè)信號(hào)量的微小變化也將轉(zhuǎn)換成電信號(hào)。 大多數(shù)傳感器是以物理原理為基礎(chǔ)運(yùn)作的?;瘜W(xué)傳感器的技術(shù)問(wèn)題較多,例如可靠性問(wèn)題、規(guī)模生產(chǎn)的可能性、價(jià)格問(wèn)題等,解決了這些問(wèn)題,化學(xué)傳感器的應(yīng)用將會(huì)有巨大增長(zhǎng)。而有些傳感器既不能劃分為物理類,也不能劃分為化學(xué)類。Andr
3、oid中傳感器的種類GoogleAndroid操作系統(tǒng)中內(nèi)置了很多傳感器,在部分游戲或軟件中可以自動(dòng)識(shí)別屏幕的橫屏、豎屏方向來(lái)改變屏幕顯示布局。下面是Android中支持的幾種傳感器:SenSor。TYPE_ACCELEROMETER:加速度傳感器。Sensor。TYPE_GYROSCOPE:陀螺儀傳感器。Sensor。TYPE_LIGHT:亮度傳感器。Sensor。TYPE_MAGNETIC_FIELD:地磁傳感器。Sensor。TYPE_ORIENTATION:方向傳感器。Sensor。TYPE_PRESSURE:壓力傳感器。Sensor。TYPE_PROXIMITY:近程傳感器。Sen
4、sor。TYPE_TEMPERATURE:溫度傳感器。Android中傳感器的功能要在Android中使用傳感器,首先需要了解SensorManager和SensorEventListener。顧名思義,SensorManager就是所有傳感器的一個(gè)綜合管理類,包括了傳感器的種類、采樣率、精準(zhǔn)度等。我們可以通過(guò)getSystemService方法來(lái)取得一個(gè)SensorManager對(duì)象。代碼如下:SensorManagermSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);取得SensorManager對(duì)象之后,可以通
5、過(guò)getSensorList方法來(lái)獲得我們需要的傳感器類型,保存到一個(gè)傳感器列表中。通過(guò)如下代碼可以得到一個(gè)方向傳感器:Listsensors=mSensorManager。getSensorList(Sensor。TYPE_ORIENTATION);要與傳感器交互,應(yīng)用程序必須注冊(cè)以偵聽(tīng)與一個(gè)或多個(gè)傳感器相關(guān)的活動(dòng)。Android中提供了registerListener來(lái)注冊(cè)一個(gè)傳感器,并提供了unregisterListener來(lái)卸載一個(gè)傳感器。registerListener方法包括3個(gè)參數(shù):第1個(gè)參數(shù),接收信號(hào)的Listener實(shí)例;第2個(gè)參數(shù),想接收的傳感器類型的列表(即上一步創(chuàng)建
6、的List對(duì)象);第3個(gè)參數(shù),接收頻度。調(diào)用之后返回一個(gè)布爾值,true表示成功,false表示失敗。//注冊(cè)傳感器BooleanmRegisteredSensor=mSensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_FASTEST);//卸載傳感器mSensorManager.unregisterListener(this);onSensorChanged(SensorEventevent)方法在傳感器值更改時(shí)調(diào)用。該方法只由受此應(yīng)用程序監(jiān)視的傳感器調(diào)用。該方法的參數(shù)包括一個(gè)SensorEvent對(duì)象
7、,該對(duì)象主要包括一組浮點(diǎn)數(shù),表示傳感器獲得的方向、加速度等信息。例如,以下代碼可以取得其值:floatx=event.values[SensorManager.DATA_X];floaty=event.values[SensorManager.DATA_Y];floatz=event.values[SensorManager.DATA_Z];onAccuracyChanged(Sensorsensor,int