標籤:
========================================
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集合。
LocationProvider:
擷取LocationProvider的對象:
*通過名稱來獲得指定的LocationProvider對象。//LocationProvider provider = lm.getProvider(LocationManager.GPS_PROVIDER);
**通過Criteria獲得LocationProvider,Criteria相當於一個過濾器,Location.getBestProvider(Criteria criteria,boolean enabledOnly);來
擷取合格Provider。
//LocationProvider 中最常用的LocationManager.GPS_PROVIDER
Location
通過程式可以即時的擷取使用者所在的經度,維度,高度,方向,移動速度等。詳情見:瘋狂android講義P667
步驟:
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"/>
臨近警告;
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進行定位,跟蹤等
//Baidu Map 高德map 很不錯的map ,美團的定位系統是:soso地圖。搜房網也是soso地圖
Android之 GPS學習筆記