此文章對包android.location中的android框架定位api做出指導。
但是google定位服務api作為google應用服務的一部分,提供了更有用,更高層次的框架,能夠進行定位供應選擇和電池管理。
定位服務更提供了一些新的特性,比如進程識別,這個在android框架下的定位api中是沒有的。
正在使用android框架下定位api的開發者,和想要把定位功能加入app的開發者們,此文章強烈推薦使用定位服務api。
想了解更多定位服務api,請參考google location services for android。
基於定位和地圖的app在移動設備上提供了令人吃驚的效果。你可以使用android.location包中的類和google地圖安卓api將這些功能設計入你的app,下面的文章介紹了怎樣加入這些特性。
定位服務
你可以使用android.location包中的類使你的app能夠獲得運行設備所支持的定位服務。
定位框架中的核心組件是locationmanager系統服務,它提供了定位的api,並且作為底層設備的支柱(若有底層設備)。
和其他的系統服務一樣,我們不需要直接初始化locationmanager。但是,我們需要一個系統的一個實例,通過呼叫getsystemservice(content.location_service)。
該方法將會返回一個對新locationmanager實例的處理結果。
一旦你的應用有了locationmanager,它就可以幹下面三件事了:
1. 為最後一個知曉的用戶位置查詢locationprovider表單。
2. 從定位提供者處為用戶當前位置的週期更新註冊或註銷。
3. 當設備來到一個點(經度/緯度給定)的給定估計範圍內,註冊或註銷使一個intent激活。
更多參看location strategies一文。
google地圖安卓api
有了它,你就可以向你的app加入基於google地圖數據的地圖。api會自動處理google地圖服務器接入,數據下載,地圖顯示,地圖上的觸碰手勢反應。
我們也可以用api添加標記,多邊形,覆蓋物,更改用戶視圖到一個特定的地圖區域。
google地圖安卓api中的關鍵類是mapview。mapview可以使用google地圖服務得到的數據顯示地圖。
當mapview有了焦點,它會抓住按鍵和觸碰的手勢,自動縮放地圖,包括處理增加地圖塊的連網請求。
它也會提供用戶控制地圖所需的所有ui元素。
我們的app也可以使用mapview類的方法,用代碼來控制地圖,在地圖上層畫一些覆蓋物。
google地圖安卓api沒有包含在安卓平台中,但是能夠通過google應用服務在2.2或更高的版本以及裝有google應用商店的設備上使用。
將google地圖整合進你的app,我們需要在android sdk中安裝google play services libraries。
更多請參見google play services。