GPS的常用API

  Android SDK为GPS提供了很多API,其中LocationManager类是这些API的核心。所有与GPS相关的操作都由LocationManager对象及其派生的对象完成。

LocationManager是一个系统服务类,与TelephonyManager、AudioManager等服务类的作用和创建服务类对象的方法类似。

LocationManager 是一个系统服务类
LocationProvider 可以获取与位置提供者相关的信息
Location 对具体位置信息的抽象表示

获取位置提供者

  使用GPS定位的关键之一就是获取LocationProvider,每一个LocationProvider对象都表示一个抽象的定位系统。无论使用GPS做什么,都需要首先获取合适的LocationProvider对象。三和取得LocationProvider方法:

  获取所有可用的LocationProvider。

  根据名称获取LocationProvider。

  根据条件(Criteria)获取LocationProvider。

代码如下 :三个都包括.

 import java.util.List;

 import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView; /*
* 本类用3种方法列出LocationProvider
*/
public class AllProvidersActivity extends Activity
{
//用来显示所有LocationProvider
ListView mProviders; //LocationProvider管理类
LocationManager mLocationManager; @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); mProviders = (ListView)findViewById(R.id.providers); //列出所有LocationProvider第1步,取得LocationManager
mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); listAllLocationProvider(); // filterLocationProvider();
}
/*
*
* 获取所有可用的LocationProvider
*/
public void listAllLocationProvider(){
//列出所有LocationProvider第2步,从LocationManager列出所有LocationProvider保存了string类型的list中
List<String> providerNames = mLocationManager.getAllProviders(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, providerNames); mProviders.setAdapter(adapter);
}
/*
* 根据条件(Criteria)获取LocationProvider
*/
public void filterLocationProvider(){
//1,创建一个LocationPorvider过滤器.
Criteria cri = new Criteria(); //2,设备过滤条件
//过滤条件1:LocationPorvider免费
cri.setCostAllowed(false);
//过滤条件2:LocationPorvider提供高度信息
cri.setAltitudeRequired(true);
//过滤条件3:LocationPorvider提供方向信息
cri.setBearingRequired(true); List<String> providerNames = mLocationManager.getProviders(cri, true);//true表示3个条件是逻辑与 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, providerNames);
mProviders.setAdapter(adapter);
}
/*
* 根据名称获取LocationProvider
*/
public void getLocationProviderByName(){
// 获取passive Location Provider
LocationProvider passiveProvider = mLocationManager.getProvider(LocationManager.PASSIVE_PROVIDER);
// 获取gps Location Provider
LocationProvider gpsProvider = mLocationManager.getProvider(LocationManager.GPS_PROVIDER);
// 获取network Location Provider
LocationProvider networkProvider = mLocationManager.getProvider(LocationManager.NETWORK_PROVIDER); }
}

GPS(1)核心API及3种列出LocationProvider的方法的更多相关文章

  1. 支持GPS的核心API

    Android为GPS功能支持专门提供了一个LocationManager类,它的作用于TelephonyManager.AudioManager等服务类的作用相似,所有GPS定位相关的服务.对象都将 ...

  2. Spring的核心api和两种实例化方式

    一.spring的核心api Spring有如下的核心api BeanFactory :这是一个工厂,用于生成任意bean.采取延迟加载,第一次getBean时才会初始化Bean Applicatio ...

  3. spark 入门学习 核心api

    spark入门教程(3)--Spark 核心API开发 原创 2016年04月13日 20:52:28 标签: spark / 分布式 / 大数据 / 教程 / 应用 4999 本教程源于2016年3 ...

  4. hibernate系列笔记(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  5. APP自动化框架LazyAndroid使用手册(3)--核心API介绍

    作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...

  6. Spark2.0学习(三)--------核心API

    Spark核心API----------------- [SparkContext] 连接到spark集群,入口点. [HadoopRDD] 读取hadoop上的数据, [MapPartitionsR ...

  7. 《Node.js高级编程》之Node 核心API基础

    Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...

  8. hibernate框架(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  9. hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等

    核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...

随机推荐

  1. 一款兼容pc 移动端的tab切换

    利用touchslider.js插件来制作的tab切换,可任意修改很方便~~~ 样式: <style> .box-163css{ width:100%; position:relative ...

  2. 如何解决NTLDR is missing

    问题:ntldr文件不见了,无法进入系统.本系统win XP 简体中文32位 解决步骤: (1)我找来一张win XP 英文版 32位的系统光盘(用U盘驱动也行) (2)重新启动计算机,并进入CMOS ...

  3. 跟着PHP100第一季学写一个CMS(1-10)

    笔记: 这次用的方法是先跟着视频做一遍,隔一天或半天后独立再做一遍,能发现真正不会的地方记录下来. CMS0.1界面布局1.问题:分两个css来实现时basic.css+index.php出现定位不正 ...

  4. vector 内部方法大全 学习(初学者的参考资料)

    1    vector构造函数:也就是如何对一个vector对象进行初始化 ////////////////////////////代码//////////////////////////////// ...

  5. 【BZOJ1305】 [CQOI2009]dance跳舞

    Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲.有一些男孩女孩相互喜欢,而其他相互不喜欢(不会 ...

  6. To change the sharepoint CA port

    Set-SPCentralAdministration -Port <port number> to fix the error: Got this error: Failed to re ...

  7. sb 讲解 (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]

    代码:(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 输出sb. 分段解析: 首先解析s: (! ...

  8. IE9下Coolite.Ext出现createContextualFragment错误

    解决Ext在IE9上报错“createContextualFragment”,只需要在使用Coolite.Ext页面加入如下代码即可: if ((typeof Range !== "unde ...

  9. Xcode 向6.0以后版本添加iOS开发空白模板

    打开finder,找到应用程序,找到xcode 右键显示包内容.按照如下目录进行查找:Contents ▸ Developer ▸ Platforms ▸ iPhoneOS.platform ▸ De ...

  10. Netty4.x中文教程系列(一) Hello World !

    1.下载并为项目添加Netty框架 1. Netty的包大家可以从Netty官网:http://netty.io/downloads.html 下载 如图所示: Netty提供了四个个主要版本的框架包 ...