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. This bison version is not supported for regeneration of the Zend/PHP parsers

    在 mac 中编译 php-src.git 报错: configure: WARNING: This bison version is not supported , excluded: ). con ...

  2. laravel项目拉取下来安装,node.js库安装

    1.拉取项目 2.切换分支 圈圈里面是版本 composer 安装laravel组件其他库 安装node.js安装包  npm set registry=https://registry.npm.ta ...

  3. 用 .htaccess 实现网址规范化

    网址规范化在 SEO 中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成内容重复,还不能正确的集中权重.目前大多数网站,绑定的域名都有带 www 和不带两个版本,甚至很多网站同时绑定多个域名 ...

  4. 简单3D翻转

    1.先上图~~~ 2.代码 html部分 <body> <div id="my3d"> <div id="box"> < ...

  5. Homebrew下安装Cocoapods

    在Mavericks下安装Cocoapods遇到ruby安装问题,参照以下网址圆满解决问题. http://www.moncefbelyamani.com/how-to-install-xcode-h ...

  6. 【css】web标准

    网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior) 结构重点理解: XHTML 1.应用形式 ccs+div  2000 2.基于xml 和x ...

  7. WebApi中帮助页Description的中文显示

    转自:http://edi.wang/post/2013/10/28/auto-generate-help-document-aspnet-webapi 我选择Web API的一个重要原因就是因为可以 ...

  8. iisapp appcmd

    C:\Windows\System32\inetsrv>appcmd list wp

  9. 关于搭建Android环境的时候遇到 'could not find adb.exe!'的问题

    关于'could not find adb.exe'的问题 问题原因: 文件所处位置和Android_home变量指路径不一致 文件路径: 解决方法: 直接将相关文件退拽至变量值的路径下即可 小结:a ...

  10. UILabel设置行间距和字间距并计算高度-b

    #define UILABEL_LINE_SPACE 6 #define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height //给UILabe ...