0413_定位服务041302_位置管理器_第1页
0413_定位服务041302_位置管理器_第2页
0413_定位服务041302_位置管理器_第3页
0413_定位服务041302_位置管理器_第4页
0413_定位服务041302_位置管理器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android开发实战经典第13章:定位服务 位置管理器:Locationmanager北京魔乐科技软件学院李兴华研发部本章目标可以使用LocationManager进行位置的;E-MAIL:位置管理器:LocationManager对于手机定位而言,最重要的就是定位的功能,用户只有明确了位置(经度和纬度)信息之后才可以根据坐标在地图上标记出所在的位置,而在Android系统之中,用户 可以使用android.location.LocationManager类来获取当前的位置信息或信息,但是如果用户要想获得LocationManager类的对象则必须依靠Android

2、给定的系统服务 LOCATION_SERVICE来完成,当用户使用getSystemService()方法根据指定的名称取得服务之后就可以得到一个LocationManager类的对象。E-MAIL:LocationManager类的常用方法E-MAIL:No.常量与方法类型描述1public static final String GPS_PROVIDER常量使用GPS提供者2public boolean addGpsStatusListener (GpsStatus.Listener listener)普通增加GPS状态3public L

3、ist getAllProviders()普通取得所有的提供者信息4public String getBestProvider(Criteria criteria, boolean enabledOnly)普通取得一个最优的提供者信息5public LocationProvider getProvider(String name)普通取得一个指定的提供者信息6public List getProviders(Criteria criteria, boolean enabledOnly)普通取得所有符合筛选条件的提供者信息7public boolean isProviderEnabled(Str

4、ing provider)普通判断某一个提供者是否可用8public void removeGpsStatusListener (GpsStatus.Listener listener)普通删除一个GPS提供者信息9public void requestLocationUpdates(long minTime, float minDistance, Criteria criteria, PendingIntent intent)普通当请求位置发生改变时10public void requestLocationUpdates(long minTime, float minDistance,Cri

5、teria criteria, LocationListener listener, Looper looper)普通当请求位置发生改变时11public void requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)普通当请求位置发生改变时requestLocationUpdates()主要方法就是requestLocationUpdates(),而此方法中的几个主要参数作用如下:String provider:为GPS服务的提供者,主要的功能是定

6、期报告移动设备所在的地理位置数据,而这个提供者就可以通过LocationManager类的“GPS_PROVIDER”常量指定,而如果现在用户希望使用网络定位,则可以使用LocationManager类的NETWORK_PROVIDER常量指定;long minTime:每次更新的最小时间间隔,单位是毫秒;float minDistance:每次更新的最小距离间隔,单位是米;LocationListener listener:每次位置改变时所提供的器对象;E-MAIL:LocationListener接口E-MAIL:public inter

7、face LocationListener / 位置状态接口/* 设备位置发生改变时触发* param location 接收用户位置信息*/public abstract void onLocationChanged (Location location) ;/* 当数据提供者关闭时触发* param provider 数据提供者名称*/public abstract void onProviderDisabled (String provider) ;/* 当数据提供者启用时触发* param provider 数据提供者名称*/public abstract void onProvide

8、rEnabled (String provider) ;/* 当位置信息状态更新时触发* param provider 数据提供者名称* param status 操作状态* param extras 附加信息*/public abstract void onStatusChanged (String provider, int status, Bundle extras) ;Location类在LocationListener这个接口中,最为关心的实际上就是onLocationChanged()方法,使用此方法可以及时通过android.location.Location类取得用户位置更改后

9、的数据。E-MAIL:No.方法类型描述1public float getAccuracy()普通取得精确度2public float getBearing()普通取得方位3public Bundle getExtras()普通取得所有附加的信息4public double getLongitude()普通取得位置经度5public double getLatitude()普通取得位置纬度6public String getProvider()普通取得数据提供者名称7public float getSpeed()普通取得速度8public long getTime()

10、普通取得时间范例:取得手机位置E-MAIL:范例:定义布局管理器 main.xmlE-MAIL:布局管理器高度为屏幕高度 默认显示文字范例:定义Activity程序,对位置进行publicclassMyGPSDemo extends Activity private TextView msg = null;private LocationManager locationManager Override/ 显示坐标信息= null; / 位置管理public void onCreate(Bundle savedInstanceState) su

11、per.onCreate(savedInstanceState); super.setContentView(R.layout.main);/ 默认布局管理器this.locationManager = (LocationManager) super.getSystemService(Context.LOCATION_SERVICE);/ 取得位置服务获得组件this.msg = (TextView) super.findViewById(R.id.msg);this.locationManager.requestLocationUpdates(/LocationManager.GPS_PRO

12、VIDER, / GPS定位提供者1000, / 时间间隔设置为1秒1, / 位置间隔设置为1米new LocationListenerImpl(); /设置位置privateclassLocationListenerImpl implements LocationListener OverrideonLocationChanged(Location location) / 设备位置发生改变时触发MyGPSDemo.this.msg.setText(用户位置发生改变,新的位置数据:n+ 经度: + location.getLongitude() + n+ 纬度: + location.getL

13、atitude() + n+ 数据精确度: + location.getAccuracy() + npublic void+ 时间:+ 速度:+ 方位:+location.getTime() + nlocation.getSpeed() + n location.getBearing() ;Overridepublic voidOverridepublic voidOverridepublic voidonProviderDisabled(String provider) / 当数据提供者关闭时触发onProviderEnabled(String provider) / 当数据提供者启用时触发

14、onStatusChanged(String provider,int status, Bundle extras) / 当位置信息状态更新时触发E-MAIL:范例:修改AndroidManifest.xml文件增加权限在本程序中配置了两个定位的操作权限,这两种权限的作用如下:ACCESS_FINE_LOCATION(取得精确的位置信息):允许使用GPS进行精确定位,对应GPS_PROVIDER常量的操作;ACCESS_COARSE_LOCATION(取得粗略的位置信息):采用网络基站(WIFI)进行定位,对应NETWORK_PROVIDER常量的操作;E-MAIL:手工发送位置信息在And

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论