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. JS的IE和FF兼容性问题汇总

    转自:蓝色理想 以下以 IE 代替 Internet Explorer,以 MF 代替 Mozilla FF 一.函数和方法差异 1. getYear()方法 [分析说明]先看一下以下代码: var ...

  2. 解决mac下eclipse字体模糊

    在eclipse.app右键,单击“显示包内容”,如下图: 2.找到"info.plist"文件并打开,在文件最后插入配置“<key>NSHighResolutionC ...

  3. 搭建pptpd实现vpn

    PPTP(Point to Point Tuneling Protocol,点对点隧道协议)是一种主要用于VPN的数据链路层网络协议. 环境:debian 7.0 在linux下安装pptpd服务实现 ...

  4. [ Web Service ] [ SOAP ] [ JSON ] [ XML ] 格式轉換

    JSON格式產生器_Demo JSON格式產生器_ObjGen - Live JSON Generator JSON格式整理_JSON Formatter & Validator Online ...

  5. 如何实现phpcms v9_4X版本tag的伪静态?

    这两个月来写的文章越来越少了,不是懒,因为太忙了--为客户赶做网站.因为客户指定要使用phpcms v9,还要求使用phpcms v9_42版本实现tag伪静态,在接手的时候phpcms v9_42是 ...

  6. sql新感悟(where 1 = 1)

    花了好久把YII框架看完发现一本很不错的书:SQL案例解析(清华大学出版社),看到一些比较有用的东西,感觉应该把他记录下来,看了好多页发现书中一直有 where 1=1,这样的语句,查过发现“wher ...

  7. db2使用Java存储过程实现MD5函数

    1.数据库版本 2.Java脚本 import java.security.MessageDigest; import COM.ibm.db2.app.UDF; public class MD5UDF ...

  8. 求小于等于n的所有素数

    题目:要求输出所有小于等于n的素数(n>=2,且为正整数) 要求:1.每行输出10个素数 2.尽可能采用较优算法 #include<iostream> #include<cma ...

  9. web.xml中JSP配置及 EL表达式

    web.xml 中JSP配置.servlet配置 及 EL表达式 [摘要] servlet 基本配置 <servlet> <servlet-name>LoginServlet& ...

  10. cmd&Linux 下使用mysql全记录

    php mysql数据库常用cmd命令集 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...