特别声明:以下所有操作都别忘记了加上权限:- <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监听器 |
| | |
LocationProviderLocationProvider用来描述位置提供者,设置位置提供者的一些属性。可以通过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 () | 获得速度 |