GPS調用是Android系統中非常重要的一個功能,可以為手機app提供與位置相關的所有功能。
Android編程時,對於GPS模塊有一個專門的管理類,稱為:LocationManager,用來管理與GPS定位服務相關的所有接口。
一、LocationMangager,簡稱位置管理器。在使用gps相關硬體設備之前,需要先定個LocationManager。LocationManager類的對象獲取並不是直接創建的,而是由系統提供的,只需要創建一個LocationManager對象的引用,然後把系統提供的數據賦值給它即可:
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
此類封裝了一些常用的gps功能,比如獲取gps狀態,最近一些可以地點信息等等:
GpsStatus.Listener ,GPS狀態監聽,包括GPS啟動、停止、第一次定位、衛星變化等事件。
GpsStatus,GPS狀態信息,上面在衛星狀態變化時,我們就用到了GpsStatus。
GpsSatellite,定位衛星,包含衛星的方位、高度、偽隨機噪聲碼、信噪比等信息。
GpsStatus getGpsStatus(GpsStatus):獲取GPS當前狀態;
Location getLastKnownLocation(String):獲取最近一次的可用地點信息
可以將地點信息傳遞給一個Location對象:
Locationlocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
二、Location,位置信息,通過Location可以獲取時間、經緯度、海拔等位置信息。上面採用locationListener裡面的onLocationChanged()來獲取location,
比如獲取時間location.getTime(),獲取經度getLongtitude(),獲取緯度:location.getLatitude(),海拔location.getAltitude()等等
下面講述如何主動獲取location。首先也是先創建一個Location對象的引用並賦值:
Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
並顯示出來:
system.out.println("時間:"+location.getTime());
system.out.println("經度:"+location.getLongitude());
另外,如果通過new Location來賦值,那麼此時所有函數的值都會是0。無法獲取到正確的數據。
Location location=new Location(LocationManager.GPS_PROVIDER)
可以調用以下函數,對每次更新的位置信息進行我們想要的操作:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 10, new LocationListener())
第一個參數是LocationProvider對象,第二個參數是刷新的時間差,這裡設定為1秒,第三個參數是位置差,這裡設定為10米,第四個參數為一個位置監聽器對象。
以上便是安卓編程裡,對於GPS調用的簡單知識,大家可以反覆修改實驗,擴充一下,達到自己想要的功能。