支持GPS的核心API
Android为GPS功能支持专门提供了一个LocationManager类,它的作用于TelephonyManager、AudioManager等服务类的作用相似,所有GPS定位相关的服务、对象都将有该对象来产生。
与程序中获取TelephonyManager、AudioManager的方法相似,程序并不能直接LocationManager的实例,而是通过调用Context的getSystemService()方法来获取,例如如下代码:
LocationManager lm = getSystemService(Context.LOCATION_SERVICE);
一旦在程序中获得了LocationManager对象之后,接下类即可调用LocationManager的方法来获取GPS定位的相关服务和对象了。LocationManager提供了如下常用的方法:
1、boolean addGpsStatusListener(GpsStatus.Listener listener):添加一个监听GPS状态的监听器。
2、void addProximityAlert(double latitude , double longitude , float radius , long expiration , PendingIntent intent):添加一个临近警告。
3、List<String> getAllProviders():获取所有的LocationProvider列表。
4、String getBestProvider(Criteria criteria, boolean enabledOnly):根据指定条件返回最优的LocationProvider对象。
5、GpsStatus getGpsStatus(GpsStatus status):获取GPS状态。
6、Location getLastKnownLocation(String provider):根据LocationProvider获取最近一次已知的Location。
7、LocationProvider getProvider(String name):根据名称来获取LocationProvider。
8、List<String> getProviders(Criteria criteria , boolean enabledOnly):根据指定条件获取满足该条件的全部LocationProvider的名称。
9、List<String> getProviders(boolean enabledOnly):获取所有可用的LocationProvider。
10、boolean isProviderEnabled(String provider):判断指定名称的LocationProvider是否可用。
11、void removeGpsStatusListener(GpsStatus.Listener listener):删除GPS状态监听器。
12、void removeProximityAlert(PendingIntent intent):删除一个临近警告。
13、void requestLocationUpdates(String provider , long minTim , float minDistance, PendingIntent intent):通过指定的LocationProvider周期性的获取定位信息,并触发listener所对应的触发器。
在上面的方法列表中涉及一个GPS定位支持的另一个重要的API:LocationProvider(定位提供者),LocationProvider对象就是GPS定位组件的抽象表示,通过LocationProvider可以获取该定位组件的相关信息,LocationProvider提供了如下常用方法:
1、int getAccuracy():返回该LocationProvider的精度。
2、String getName():返回该LocationProvider的名称。
3、int getPowerRequirement():获取该LocationProvider的电源需求。
4、boolean hasMonetaryCost():返回该LocationProvider是收费的还是免费的。
5、boolean meetsCriteria(Criteria criteria):判断该LocationProvider是否满足Criteria条件。
6、boolean requiresCell():判断该LocationProvider是否需要访问网络基站。
7、boolean requiresNetwork():判断该LocationProvider是否需要网络数据。
8、boolean requiresSatellite():判断该LocationProvider是否需要访问基于卫星的定位系统。
9、boolean supportsAltitude():判断该LocationProvider是否支持高度信息。
10、boolean supportsBearing():判断该LocationProvider是否支持方向信息。
11、boolean supportsSpeed():判断该LocationProvider是否支持速度信息。
除此之外,GPS支持还有一个API:Location,它就是一个代表位置信息的抽象类,提供了如下方法来获取定位信息。
1、float getAccuracy():获取定位信息的精度。
2、double getAltitude():获取定位信息的高度。
3、float getBearing():获取定位信息的方向。
4、double getLatitude():获取定位信息的纬度。
5、double getLongitude():获取定位信息的经度。
6、String getProvider():获取提供该定位信息的LocationProvider。
7、float getSpeed():获取定位信息的速度。
8、boolean hasAccuracy():判断该定位信息是否有精度信息。
9、boolean hasAltitude():判断该定位信息是否有高度信息。
10、boolean hasBearing():判断该定位信息是否有方向信息。
11、boolean hasSpeed():判断该定位信息是否有速度信息。
上面三个API就是Android GPS支持的三个核心API,使用它们来获取GPS定位信息的通用步骤为:
1、获取系统的LocationManager对象。
2、使用LocationManager,通过指定LocationProvider来获取定位信息,定位信息由Location对象来表示。
3、从Location对象中获取定位信息。
支持GPS的核心API的更多相关文章
- GPS(1)核心API及3种列出LocationProvider的方法
GPS的常用API Android SDK为GPS提供了很多API,其中LocationManager类是这些API的核心.所有与GPS相关的操作都由LocationManager对象及其派生的对象完 ...
- SDL 开发实战(二):SDL 2.0 核心 API 解析
在上一篇文章 SDL 开发实战(一):SDL介绍及开发环境配置 中,我们配置好了SDL的开发环境,并成功运行了SDL的Hello World 代码.但是可能大部分人还是读不太明白具体Hello Wol ...
- hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等
核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...
- Lucene系列六:Lucene搜索详解(Lucene搜索流程详解、搜索核心API详解、基本查询详解、QueryParser详解)
一.搜索流程详解 1. 先看一下Lucene的架构图 由图可知搜索的过程如下: 用户输入搜索的关键字.对关键字进行分词.根据分词结果去索引库里面找到对应的文章id.根据文章id找到对应的文章 2. L ...
- java多线程核心api以及相关概念(一)
这篇博客总结了对线程核心api以及相关概念的学习,黑体字可以理解为重点,其他的都是我对它的理解 个人认为这些是学习java多线程的基础,不理解熟悉这些,后面的也不可能学好滴 目录 1.什么是线程以及优 ...
- 三大框架 之 Hibernate框架概述(概述、配置、核心API)
目录 Hibernate框架概述 什么是框架 hibernate简介(JavaEE技术三层架构所用到的技术) hibernate是什么框架 ORM hibernate好处 Hibernate基本使用 ...
- spark 入门学习 核心api
spark入门教程(3)--Spark 核心API开发 原创 2016年04月13日 20:52:28 标签: spark / 分布式 / 大数据 / 教程 / 应用 4999 本教程源于2016年3 ...
- hibernate系列笔记(2)---Hibernate的核心API
Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...
- APP自动化框架LazyAndroid使用手册(3)--核心API介绍
作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...
随机推荐
- bzoj1029 [JSOI2007]建筑抢修
贪心,按截止时间排序,然后按截止时间从小到大枚举维修的建筑,如果之前修理建筑的总时间+当前修理时间<=截止时间,那么答案+1,否则如果之前修理过的建筑中最大的修理时间>当前建筑修理时间,那 ...
- Gulp学习指南之CSS合并、压缩与MD5命名及路径替换(转载)
本文转载自: Gulp学习指南之CSS合并.压缩与MD5命名及路径替换
- jquery隐藏table表格的某一列
jquery隐藏table表格的某一列: $('table tr').find('td:eq(13)').hide(); 隐藏table的第13列
- zabbix centos 6.4 安装
--下载地址 http://www.zabbix.com/download.php --环境 centos6.4-x86-64 zabbix 2.2 x64 --所需安装包 rpm -ivh unix ...
- Arduino示例教程超声波测距实验
超声波传感器 超声波是一种超出人类听觉极限的声波即其振动频率高于20 kHz的机械波.超声波传感器在工作的时候就是将电压和超声波之间的互相转换,当超声波传感器发射超声波时,发射超声波的探头将电压转化的 ...
- s3c2440 移值新内核 linux-4.1.36
arm-linuxgcc version 4.3.2 经过试验,最高可以编译到 linux-4.1.36 ,在高的版本会有错误 ,可能是 GCC 编译器版本较低造成. 解压比较麻烦还要装一个 xz x ...
- Linux按键驱动程序设计--从简单到不简单【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51399353 混杂设备驱动模型: 1. 混杂设备描述 在Linux系统中,存在一 ...
- java 字符串类型String
在本质上,字符串实际上一个char类型的数组,由java.lang.String类来表示,该类具有一系列的属性和方法,提供对字符串的一些操作.除此之外,java还提供了StringBuffer类来处理 ...
- 获取本地IP,并设置到IP控件
char szHostName[MAX_PATH + 1]; gethostname(szHostName, MAX_PATH); //得到计算机名 hostent *p = gethostbynam ...
- Python namedtuple
我们都知道Python中的tuple是一个非常高效的集合对象,但是我们只能通过索引的方式访问这个集合中的元素,比如下面的代码: Bob=('bob',30,'male') print'Represen ...