GPS(1)核心API及3种列出LocationProvider的方法
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的方法的更多相关文章
- 支持GPS的核心API
Android为GPS功能支持专门提供了一个LocationManager类,它的作用于TelephonyManager.AudioManager等服务类的作用相似,所有GPS定位相关的服务.对象都将 ...
- Spring的核心api和两种实例化方式
一.spring的核心api Spring有如下的核心api BeanFactory :这是一个工厂,用于生成任意bean.采取延迟加载,第一次getBean时才会初始化Bean Applicatio ...
- 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 ...
- Spark2.0学习(三)--------核心API
Spark核心API----------------- [SparkContext] 连接到spark集群,入口点. [HadoopRDD] 读取hadoop上的数据, [MapPartitionsR ...
- 《Node.js高级编程》之Node 核心API基础
Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...
- hibernate框架(2)---Hibernate的核心API
Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...
- hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等
核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...
随机推荐
- CSS样式display:none和visibility:hidden的区别
同样是隐藏,display:none与visibility:hidden有什么区别呢? 虽然display:none与visibility:hidden都能达到隐藏可见元素的作用(视觉上),但事实上, ...
- ACE_linux:任务 & 命令(Task and Command)
1.涉及类 ACE_Task//ACE任务ACE_Activation_Queue//ACE命令队列 ACE_Method_Request//ACE请求(命令) 2.简介 ACE主动对象模式 主动对象 ...
- ES6学习笔记(三)
ES6加强了对Unicode的支持,并且扩展了字符串对象. 1.字符的Unicode表示法 JavaScript允许采用\uxxxx形式表示一个字符,其中"xxxx"表示字符的码点 ...
- js 根据当前星期做跳转(代码段)
var week = [6,0,1,2,3,4,5]; $('.HotShop_head .HotShop_tab:eq('+week[new Date().getDay()]+')').click( ...
- php5 图片验证码一例
php5 图片验证码. GD库的函数1,imagecreatetruecolor -----创建一个真彩色的图像imagecreatetruecolor(int x_size,int y_size) ...
- Using jQuery to add a dynamic “Back To Top” floating button with smooth scroll
Ever read a really long blog post or article and then had to scroll all the way up to the top of the ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- WPF 概述
WPF 全称是:Windows Presentation Foundation,直译为Windows表示基础.WPF是专门为GUI(Graphic User Interface)程序开发设计的. 在过 ...
- 1065. A+B and C (64bit)
#include<stdio.h> #include <math.h> int main() { long long a,b,c,sum; int n,i; while(sca ...
- 数据库 mysql 优化器原理
MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行. 你的最终目标是提交SELECT语句查找数据行,而不是排除数据行.优化器试图排除数据 ...