`

Android 定位系统(GPS)开发基础

阅读更多

全球定位系统(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 locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

取得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系统原理及开发要点详解

     第1章“Android系统概述”,概述Android系统方面的内容,包括智能手机平台的发展历程、Android系统的特点、Android的3种开发工作,以及Android的2种不同的开发方式。  第2章“Android系统开发综述”,介绍Android...

    Android 高德地图定位和实时导航

    Android 高德地图基础地图的显示,GPS定位和实时导航。

    Android开发组之地图定位实习报告.pptx

    离线地图 Esri公司实例加载在线地图,初步掌握工程的建立与地图的实现 将准备好的离线地图包加载在新开发的工程中 在离线地图的基础上进行定位,由于坐标系等原因未能成功 三方面 Part three 8 Android开发组之地图...

    Android应用开发详解

    Android开发基础,讲述了Android开发环境的搭建、Android常用工具的使用和第一个Android应用程序的开发 第二篇 技术篇 第3章 Android中的资源访问 Android 中的资源访问,讲述了如何定义和访问Android中的外部...

    基于安卓的GPS移动定位及运行轨迹管理系统

    包括利用Hibernate实现对数据库操作,以 Spring进行管理,响应用户的请求客户端功能实现,主要包括 MAPABC地图显示,利用手机GPS模块实现定位,调用 MAPABC API实现导航,以Android系统照相功能为基础,实现具有...

    Android 底层接口与驱动开发技术详解

    详细讲解了Android系统中常用驱动的移植知识,分别讲解了显示系统、输入系统、振动器系统、音频系统、视频输出系统、OpenMax多媒体框架、多媒体插件框架、传感器系统、照相机系统、Wi—Fi系统、蓝牙系统、电话系统、...

    老罗android开发视频教程全集百度网盘下载

    Android进阶高级:蓝牙/WIFI SMS/MMS 应用实现 深层次解析GPS原理,实现LocationManager/LocationProvider 进行定位/跟踪/查找/趋近警告以及Geocoder正逆向编解码等技术细节 2D图形库(Graphics/View)详解 SDCARD/...

    百度定位SDKv7.0版本中的基础定位简单应用 获取所在城市

    * 百度Android定位SDK自v7.0版本起,按照附加功能不同,向开发者提供了四种不同类型的定位开发包,可根据不同需求下载不同的开发包 * ----这里使用了其中的基准定位 开发包也才几百k 没有担心apk 突然增大很多的...

    Android GPS定位详解及实例代码

    本文就跟大家分享下Android开发中的GPS定位知识。  一、Android基础知识准备  1、Activity类  每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,BREW的基类是applets,而Android程序的基类是...

    android 完全中文版 开发应用详解

    1.1.1 android开发系统的由来 1 1.1.2 移动电话系统开发模式 2 1.1.3 未来移动电话的功能及android的优势 4 1.2 android的开发工作 6 1.2.1 android移植开发 6 1.2.2 android应用开发 8 1.2.3 android系统开发 9 1.3...

    Android开发案例驱动教程 配套代码

    16.3 Android定位服务 430 16.3.1 开启定位服务 431 16.3.2 模拟测试 433 16.3.3 GPS与Google Map结合 435 16.4 案例重构 437 16.4.1 重构"定位查询"方法 438 16.4.2 重构"查询周围"方法 440 本章小结 443 ...

    利用Xposed框架hook系统方法 改变GPS定位 实现Android模拟定位.zip

    包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...

    《Java和Android开发实战详解》第18章 Google地图与定位服务代码-by 南邮-陈杨

    第11章是XML与Android的开发基础;第12章~第13章讲解了建立第1个Android应用程序及和Android开发有关的核心技术;第14章讲解了建立多活动的Android应用程序;第15章讲解了高级应用接口的菜单、对话框与列表接口;第...

    基于Android系统的地籍调查系统设计与实现

    针对地籍调查手段落后、数字化程度不高的缺点,利用Maplib移动开发技术与GPS动态定位技术,结合户外地籍调查的实际情况,设计并实现了基于Android的地籍调查系统。以平湖市地籍调查为例,表明该系统不仅可以在外业调查...

    Android 初学中阶高阶书籍_集合打包2

    用,Android实现GPS定位,Android通过JNI调用驱动程序,Android网络开发详解,android写的google map api 应用,android学 习资料大全,Android音视频的编解码,Android应用框架原理与程序设计36技(高焕堂著、简体版),...

    Android 初学中阶高阶书籍_集合打包3

    用,Android实现GPS定位,Android通过JNI调用驱动程序,Android网络开发详解,android写的google map api 应用,android学 习资料大全,Android音视频的编解码,Android应用框架原理与程序设计36技(高焕堂著、简体版),...

    Android应用开发深入学习实录 pdf

    接下来详细讲解了Android 核心应用的核心内容,主要包括电话/短信处理、GPS 定位、网络应用开发、多媒体项目开发、手机游戏开发等知识点的具体用法;然后讲解了Android 的高级知识,主要包括Android 典型模块、...

    新版Android开发教程.rar

    这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...

    Android程序设计基础

    本书是一部关于 android开发的基础教程,采用由浅入深、循序渐进的方式讨论android。书中还结合数独游戏等实例更加形象生动地讲解了 android开发的基本流程,且每章最后都有一个 “快速阅读指南 ”,更加方便了读者...

    android精品源码

    Android_GoogleMaps基础开发教程.pdf Android_GPS架构分析.doc android_jni操作指南.pdf android_JNI编程_一些技巧.doc Android_NDK开发实例.doc Android_RIL层剖析(官方翻译).doc Android与JUnit深入浅出.pdf ...

Global site tag (gtag.js) - Google Analytics