初探Android平台上的定位服务(GPS)
初探Android平台上的定位服务(GPS)
特别声明:以下所有操作都别忘记了加上权限:
- <uses-permission Android:name="android.permission.ACCESS_COARSE_LOCATION" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- 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
- locationManager=(LocationManager)LocationManagerDemoActivity.this.getSystemService(Context.LOCATION_SERVICE);
- //获取所有的LocationProvider
- List<String> allproviders=locationManager.getAllProviders();
- for (String string : allproviders) {
- System.out.println(string);
- }
Location类
它用于描述当前设备的地理位置信息,包括了经纬度、方向、高度和速度等。可以通过LocationManager.getLastKnownLocation(String provider)方法可以获得Location实例
其常见方法和属性:
方法 |
描述 |
public float getAccuracy () |
获得精确度 |
public double getAltitude () |
获得高度 |
public float getBearing () |
获得方向 |
public double getLatitude () |
获取经度 |
public double getLongitude () |
获得纬度 |
public float getSpeed () |
获得速度 |
|
评论暂时关闭