歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 初探Android平台上的定位服務(GPS)

初探Android平台上的定位服務(GPS)

日期:2017/3/1 11:06:47   编辑:Linux編程

特別聲明:以下所有操作都別忘記了加上權限:

  1. <uses-permission Android:name="android.permission.ACCESS_COARSE_LOCATION" />
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  4. sp;

LocationManager

通過LocationManager可以實現設備的定位、跟蹤和趨近提示。它不需要你直接來實例化,我們可以通過Context.getSystemService(Context.LOCATION_SERVICE). 來獲得LocationManager實例。

常用屬性和方法

屬性和方法

描述

GPS_PROVIDER

靜態字符串常量,表明LocationProvider是GPS

NETWORK_PROVIDER

靜態字符串常量,表明LocationProvider是網絡

addGpsStatusListener(GpsStatus.Listener listener)

添加一個GPS狀態監聽器

addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent)

添加一個趨近警告

getAllProviders()

獲得所有的LocationProvider列表

getBestProvider(Criteria criteria, boolean enabledOnly)

根據Criteria返回最適合的LocationProvider

getLastKnownLocation(String provider)

根據Provider獲得位置信息

getProvider(String name)

獲得指定名稱的LocationProvider

getProvider(boolean enableOnly)

獲得可利用的LocationProvider列表

removeProximityAlert(PendingIntent intent)

刪除趨近警告

requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent)

通過給定的Provider名稱,周期性地通知當前Activity

requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)

通過給定的Provider名稱,並將其綁定指定的LocationListener監聽器

LocationProvider

LocationProvider用來描述位置提供者,設置位置提供者的一些屬性。可以通過Criteria類來為LocationProvider設置條件,獲得合適的LocationProvider。

屬性或者方法名稱

描述

AVAILABLE

靜態整型常量,標示是否可利用

OUT_OF_SERVICE

靜態整型常量,不在服務區

TEMPORAILY_UNAVAILABLE

靜態整型常量,臨時不可利用

getAccuarcy()

獲得精度

getName()

獲得名稱

getPowerRequirement()

獲得電源需求

hasMonetaryCost()

花錢的還是免費的

requiresCell()

是否需要訪問基站網絡

requiresNetWork()

是否需要Intent網絡數據

requiresSatelite()

是否需要訪問衛星

supportsAltitude()

是否能夠提供高度信息

supportsBearing()

是否能夠提供方向信息

supportsSpeed()

是否能夠提供速度信息

實例:獲取設備上的所有的LocationProviders

  1. locationManager=(LocationManager)LocationManagerDemoActivity.this.getSystemService(Context.LOCATION_SERVICE);
  2. //獲取所有的LocationProvider
  3. List<String> allproviders=locationManager.getAllProviders();
  4. for (String string : allproviders) {
  5. System.out.println(string);
  6. }

Location類

它用於描述當前設備的地理位置信息,包括了經緯度、方向、高度和速度等。可以通過LocationManager.getLastKnownLocation(String provider)方法可以獲得Location實例

其常見方法和屬性:

方法

描述

public float getAccuracy ()

獲得精確度

public double getAltitude ()

獲得高度

public float getBearing ()

獲得方向

public double getLatitude ()

獲取經度

public double getLongitude ()

獲得緯度

public float getSpeed ()

獲得速度

Copyright © Linux教程網 All Rights Reserved