Android 定位系统(GPS)开发详解

所属分类: 软件编程 / Android 阅读数: 1146
收藏 0 赞 0 分享

全球定位系统(Global Positioning System,GPS),是一个中距离圆型轨道卫星导航系统,可以为地球表面的绝大部分地区(98%)提供准确的定位、测速和高精准的时间标准。GPS广泛运用于军事、物流、地理、移动电话、数码相机、航空领域等,具有非常强大的功能。

Android支持地理定位服务的API。该地理定位服务可以用来获取当前设备的地理位置,应用程序可以定时请求更新设备当前的地理位置信息。比如应用程序可以借助一个Intent接收器来实现如下功能:

以经纬度和半径规划一个区域,当设备进入给区域,发出提醒信息,还可以和Google Map API一起使用,完成更多的任务。

关于地理定位系统的API全部位于android.location包内,其中包括以下几个重要的功能类:

LocationManager

本类提供访问定位服务的功能,也提供获取最佳定位提供者的功能。另外,临近警报功能也可以借助该类来实现。

LocationProvide:

该类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。

LocationListener:

提供地位信息发生改变时的回调功能。必须事先在定位管理器中注册监听器对象。

Criteria:

该类使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者。

Geocoder:

用处理地理编码和反向地理编码的类。地理编码是指将地址或者其他描述转变为经度和纬度,反向地理编码是将经度和纬度转变为地址或描述语言,其中包含了两个构造   函数,需要传入经度和纬度的坐标。getFromLocation方法可以得到一组关于地址的数组。

要使用地理定位,首先需要取得LocationManager的实例,在Android中,获取LocationManager的唯一方法就是通过getSystemService()方法的调用。通过使用LocationManager,我们也可以获得一个位置提供者的列表。在一个真实的手持设备中,这个列表包含了一些GPS服务。我盟也可以选择更强大、更精准、不带其他附件服务的GPS。代码如下:

locationManager.requestLocationUpdate(LocationManager.GPS_PROVIDER,1000,0,locationManager);

取得LocationManager对象后,我们还需要注册一个周期性的更新视图,代码如下:

locationManager.requestLocationUpdate(LocationManager.GPS_PROVIDER,1000,0,locationManager);

其中第一个参数是设置服务提供者,第二个参数是周期,这里需要特别说明一下最后一个参数locationManager,它用来监听定位信息的改变,所以我们必须实现以下几个方法:

 onLocationChanged(Location location):

当坐标改变时触发次函数,如果Provider传进相同的坐标,它就不会触发。

  onProviderDisabled(String provider):

Provider禁用时触发此函数,如GPS被关闭。

  onProviderEnabled(Sting provider):

Provider启用是触发此函数,如GPS被打开。

  onStatusChanged(String provider, int status, Bundle extras):

Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数。

 以上就是对Android GPS 做的资料整理,有需要的朋友可以参考下。

更多精彩内容其他人还在看

Android样式和主题之选择器的实例讲解

今天小编就为大家分享一篇关于Android样式和主题之选择器的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Android应用动态修改主题的方法示例

今天小编就为大家分享一篇关于Android应用动态修改主题的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Flutter 网络请求框架封装详解

这篇文章主要介绍了Flutter 网络请求框架封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Flutter倒计时/计时器的实现代码

这篇文章主要介绍了Flutter倒计时/计时器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android使用google breakpad捕获分析native cash

这篇文章主要介绍了Android使用google breakpad捕获分析native cash 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Flutter WebView与JS互相调用简易指南

这篇文章主要介绍了详解Flutter WebView与JS互相调用简易指南,分为JS调用Flutter和Flutter调用JS,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android开发实现ListView和adapter配合显示图片和文字列表功能示例

这篇文章主要介绍了Android开发实现ListView和adapter配合显示图片和文字列表功能,涉及Android使用ListView结合adapter适配器实现图文显示功能相关的布局、解析、权限控制等操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Android文字基线Baseline算法的使用讲解

今天小编就为大家分享一篇关于Android文字基线Baseline算法的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Flutter自定义实现神奇动效的卡片切换视图的示例代码

这篇文章主要介绍了Flutter自定义实现神奇动效的卡片切换视图的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android实现自定义滑动刻度尺方法示例

这篇文章主要给大家介绍了关于Android实现自定义滑动刻度尺的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多