位置和基於地圖的應用程式,對於行動裝置使用者來說是最具吸引力的。你能夠使用android.location包和Google Map的外部類庫,把這些能力構建到你的應用程式中。
位置服務
Android通過android.location包中的類把裝置所支援的位置服務提供給你的應用程式。位置架構的核心組件是LocationManager系統服務,它提供了API來確定位置和裝置的方位(如果有效)。
跟其他系統服務一樣,不需要直接執行個體化LocationManager。相反,你可以通過調用getSystemService(Context.LOCATION_SERVICE)方法來向系統申請一個執行個體。這個方法會返回一個新的LocationManager執行個體的控制代碼。
一旦你的應用程式有了LocationManager對象,你的應用程式就能夠做以下3件事情:
1. 查詢所有的最有擷取使用者位置的LocationProvider對象的列表;
2. 註冊/登出來自位置提供器的使用者當前位置的周期性更新(既可以通過規則來指定,也可以通過名稱來指定)
3. 註冊/登出裝置接近給定的經緯度(以米為單位的半徑地區)範圍時所要觸發的Intent對象。
更多的資訊,請看位置策略指南
Google Map外部類庫
為了讓你更加容易的把強大的地圖能力添加到你的應用程式中,Google提供了一個地圖外部類庫,它包含在com.google.android.maps包中。這個包中類提供了內建的下載、呈現和題表徵圖題緩衝功能,以及各種顯示選項和控制。
這個地圖包的關鍵類是com.google.android.maps.MayView,它是ViewGroup的一個子類。MapView顯示了一份帶有從Google Maps服務中所擷取的資料的地圖。當該MapView有焦點的時候,它會捕獲按鍵和觸摸手勢,來自動的平移和縮放地圖,包括處理額外的擷取地表徵圖題的網路請求。它還提供了所有的用於使用者控制地圖所需要的UI元素。你的應用程式也能夠使用MapView類的方法來編程式控制制MapView,並且在地圖的上面繪製一些重疊類型。
通常,MapView類圍繞Google Maps API提供了一個封裝,從而讓你的應用程式通過這些封裝的方法來維護Google Maps資料。並且它會讓你把地圖資料跟其他類型的View一起來工作。
這個地圖外部類庫不是標準Android類庫的一部分,因此,它可能在相容性Android裝置上不存在。類似的,該地圖外部類庫沒有包含在SDK所提供的標準的Android類庫中,因此,你只有在該地圖外部類庫是作為Google API的一部分被添加到Android SDK時,你才能夠使用com.google.android.maps包中的類來進行開發。
為了你的方便,Google APIs add-on是可以通過Android SDK管理器來下載的。
注意:為了在MapView中顯示Google Maps資料,你必須要註冊Google Maps服務,並擷取一個Maps API Key,更多的資訊請看如何擷取Maps API Key