資源描述:
《android-位置服務與傳感器》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、-第八章應用8.1位置服務位置服務(LBS,LocationBasedServices)又稱定位服務,是指通過GPS衛(wèi)星或者蜂窩網(wǎng)絡,獲取各種終端的地理坐標(精度和緯度),在電子地圖平臺的支持下,為用戶提供基于位置導航、查詢的一種信息業(yè)務。GPS(GlobalPositionSystem,全球定位系統(tǒng))是20世紀70年代由美國陸??杖娐?lián)合研制的新一代空間衛(wèi)星導航定位系統(tǒng)。GPS的原理是利用三維坐標中的距離公式和3顆衛(wèi)星就可以計算出觀測點的精度和高程。2005年2月Google推出了GoogleM
2、aps,該服務為Google的搜索服務增加了影響力,之后Google也將GPS應用放在了Android的設備中。本章節(jié)我們將學習在Android系統(tǒng)下如何使用相關(guān)API實現(xiàn)位置服務功能。8.1.1獲取位置信息由于手機設備的移動性,決定了手機在位置服務方面擁有比固定設備更多的優(yōu)勢,可以開發(fā)出多種基于移動設備的位置服務應用程序。AndroidSDK提供了android.location包和GoogleMapsAPI支持位置服務功能,開發(fā)人員可以方便的開發(fā)自己的位置服務應用。Android系統(tǒng)支持兩種定
3、位方式:GPS定位和網(wǎng)絡定位。GPS定位信息來自于衛(wèi)星,精度很高,但是僅在戶外有效,其首次獲取位置時間較長且耗電量非常大;而網(wǎng)絡定位使用的是移動通信基站和Wifi信號,這種方式室內(nèi)和戶外都可以使用,響應速度快,耗電少,但是精度難以保證。開發(fā)者需根據(jù)實際需求來選擇所用的定位方式。8.1.2LocationManager介紹在Android位置服務中,LocationManager是一個非常重要的的類,它用于管理用戶的位置服務信息,提供確定用戶位置的API,通過這個類可以實現(xiàn)定位、跟蹤和目標趨近等功能
4、。LocationManager對象不能直接實例化,需要通過Context.getSystemService方法獲得LocationManager對象可以完成下面三個方面的任務:l從用戶的位置查詢所有可用的LocationProvider列表。l從特定的LocationProvider周期性的獲取用戶當前位置的功能。l當用戶位置接近某個特定區(qū)域時,啟動相關(guān)任務。表8-1為LocationManager類的常用方法。常用方法和屬性方法描述getAllProviders()獲得所有的LocationP
5、rovider列表getBestProvider(criteria,enabledOnly)根據(jù)criteria返回最合適的LocationProvidergetLastKnownLocation(provider)根據(jù)provider獲得最新位置信息getProvider(name)根據(jù)名字獲得LocationProvidergetProviders(enabledOnly)獲得可用的LocationProvider列表requestLocationUpdates(provider,minTim
6、e,minDistance,listener)通過給定的Provider名稱,并將其綁定指定的LocationListener監(jiān)聽器.---GPS_PROVIDER靜態(tài)字符串常量,表明LocationProvider是GPSNETWORK_PROVIDER靜態(tài)字符串常量,表明LocationProvider是網(wǎng)絡表8-1LocationManager類的常用方法8.1.3LocationProvider介紹LocationProvider用來描述位置提供者,設置位置提供者的一些屬性??梢酝ㄟ^Cri
7、teria類來為LocationProvider設置條件,獲得合適的LocationProvider。表8-2列出了LocationProvider的常用方法和屬性。常用方法和屬性方法描述AVAILABLE靜態(tài)整型常量,標示是否可利用OUT_OF_SERVICE靜態(tài)整型常量,不在服務區(qū)TEMPORAILY_UNAVAILABLE靜態(tài)整型常量,臨時不可利用getAccuarcy()獲得精度getName()獲得名稱getPowerRequirement()獲得電源需求hasMonetaryCost(
8、)花錢的還是免費的requiresCell()是否需要訪問基站網(wǎng)絡requiresNetWork()是否需要Intent網(wǎng)絡數(shù)據(jù)requiresSatelite()是否需要訪問衛(wèi)星表8-2LocationProvider的常用方法和屬性LocationProvider中最常用的兩個是GPS_PROVIDER和NETWORK_PROVIDER,就是前文提到過的GPS定位和網(wǎng)絡定位兩種方式。使用下面代碼可以獲取系統(tǒng)所有的LocationProvider名稱:packageintrodu