========================================
GPS:全球定位系統
GPS由三部分組成:GPS衛星組成的空間部分,若干地面組成的控制站,用戶手中的接收機。
Android 爲電話管理支持提供了TelephonyManager
爲音頻管理提供了AudioManager
爲支持GPS提供了LocationManager。
獲取: LocationManager lm = (LocationManager)Context. getSystemService(Context.LOCATION_SERVICE);
//與獲取TelephonyManager,AudioManager的方法相似。
List<String> providers = lm.getAllProviers();//獲取系統全部可用的LocationProvider的對象,返回List<String>
的providers的names集合。android
LocationProvider:
獲取LocationProvider的對象:
*經過名稱來得到指定的LocationProvider對象。//LocationProvider provider = lm.getProvider(LocationManager.GPS_PROVIDER);
**經過Criteria得到LocationProvider,Criteria至關於一個過濾器,Location.getBestProvider(Criteria criteria,boolean enabledOnly);來
獲取符合條件的Provider。
//LocationProvider 中最經常使用的LocationManager.GPS_PROVIDERgit
Location
經過程序能夠實時的獲取用戶所在的經度,維度,高度,方向,移動速度等。詳情見:瘋狂android講義P667ide
步驟:
1.獲取系統的LocationManager對象.注意查看:LocationManager的API文檔。
LocationManager lm = (LocationManager)Context. getSystemService(Context.LOCATION_SERVICE);
2.使用LocationManager,經過指定LocationProvider來獲取定位信息,定位信息由Location對象表示
LocationProvider provider = lm.getProvider(String name);
3.從Location對象中獲取定位信息。
// Location location = lm.getLastKnownLocation(String provider);
//訪問GPS須要有權限:故應該在AndoridManifest.xml進行配置:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>spa
臨近警告;
LocationManager提供了一個方法:addProximityAlert(double latitude,double longitude,float radius,long expriration,PendingIntent intent);添加一個臨近警告。
對應參數爲:經度,維度,警告持續的時間:當-1時永久持續,intent表示:臨近時觸發的intent組件。
==============================================================================
小結:
本章主要介紹了Android提供 的GPS支持,目前絕大多數手機已經提供了GPS的硬件支持,均可以做爲GPS定位系統的接收機,而咱們要作的是從android系統中獲取GPS定位信息。
須要重點掌握:LocationManager,LoccationProvider與LocationListener等API的功能和用法,並能夠經過他們監聽獲取GPS定位信息。
獲取GPS只是開發其餘應用的一個基本前提,以後咱們要結合Google Map進行定位,跟蹤等xml
//Baidu Map 高德map 很不錯的map ,美團的定位系統是:soso地圖。搜房網也是soso地圖對象