========================================
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集合。android
LocationProvider:
获取LocationProvider的对象:
*经过名称来得到指定的LocationProvider对象。//LocationProvider provider = lm.getProvider(LocationManager.GPS_PROVIDER);
**经过Criteria得到LocationProvider,Criteria至关于一个过滤器,Location.getBestProvider(Criteria criteria,boolean enabledOnly);来
获取符合条件的Provider。
//LocationProvider 中最经常使用的LocationManager.GPS_PROVIDERgit
Location
经过程序能够实时的获取用户所在的经度,维度,高度,方向,移动速度等。详情见:疯狂android讲义P667ide
步骤:
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"/>spa
临近警告;
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进行定位,跟踪等xml
//Baidu Map 高德map 很不错的map ,美团的定位系统是:soso地图。搜房网也是soso地图对象