android学习-LocationManager(一)-定位方式原理解析
参考资源:android 4种定位原理及实现——1
android使用不同的方法为应用提供位置信息。
定位的方式有三种:GPS地位(A-GPSAssistedGPS:辅助全球卫星定位系统,或者是同步GPS(S-GPS)),网络定位,被动获取定位信息(应用不必显示从LocationManager请求位置更新信息,就能获取位置数据。即从其他应用中获得请求得到的位置信息)
这些信息成为信息提供者LocationProvider
Android中定义的位置提供者
- 网络定位NETWORK_PROVIDER
- GPS定位GPS_PROVIDER
- 被动定位PASSIVE_PROVIDER
组合定位FUSED_PROVIDER(这个是被隐藏的变量,不能直接使用,好像我都没有遇见过哦*~*)
GPS定位利用多个卫星至GPS接收器的距离,使用三角定位确定当前的位置,最少需要三个卫星才可以确定一个二维的位置(经度和纬度)。
如果和更多的卫星通信,GPS接收器可以确定如海拔信息(虽然海拔确定的不准确。。。。)等更多位置信息
优点:提供精确的位置数据
GPS缺点:定位时间较长,耗电,GPS接收器在看不到天空的地方无法使用,所以在室内定位出错
A-GPS:通过移动网络将GPS历书(星历的集合:接收到的卫星的位置信息的集合)和其他信息传输到移动设备。即基站代送信息到移动设备。这使得gps在室内 也可以使用
网络定位:
- 使用无线网络WiFi接入点提供位置信息---比GPS硬件更省电
1、每一个无线AP(路由器)都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内不会移动;
2、设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信号,无论是否加密,是否已连接,甚至信号强度不足以显示在无线信号列表中,都可以获取到AP广播出来的MAC地址;
3、设备将这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备;
4、位置服务商要不断更新、补充自己的数据库,以保证数据的准确性。
基站定位
第一种基站定位和GPS类似使用三角定位。移动设备通过电磁波在三个基站中转所需时间计算出设备所在坐标(基站的位置是固定的)
第二种则是利用获取最近的基站的信息,其中包括基站 id,location area code、mobile country code、mobile network code和信号强度,将这些数据发送到google的定位web服务里,就能拿到当前所在的位置信息,误差一般在几十米到几百米之内。其中信号强度这个数据很重要。
被动定位
这个是在前两者基础上通过其他应用使用前两种方式传送位置数据到当前应用
android学习-LocationManager(一)-定位方式原理解析的更多相关文章
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
- Android 上SuperUser获取ROOT权限原理解析
Android 上SuperUser获取ROOT权限原理解析 一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. ...
- [android] 手机卫士手机定位的原理
手机定位的三种方式:网络定位,基站定位,GPS定位 网络定位,手机连上wifi 2g 3g的时候,手机会有一个ip,误差很大 基站定位,精确度与基站的多少有关,几十米到几公里的误差 GPS定位,至少需 ...
- Android中几种定位 方式
介绍的几种定位方式 http://www.cnblogs.com/cuihongyu3503319/p/3863867.html 百度地图api: http://lbsyun.baidu.com/in ...
- Android 学习笔记之Volley开源框架解析(二)
PS:Volley已经学完,可以安心的写一下博客总结一下了... 学习内容: 1.Request的完整封装... 2.RetryPolicy,DefaultRetryPolicy(请求重试策略源码解析 ...
- Android 学习笔记之Volley开源框架解析(五)
学习内容: 1.PoolingByteArrayOutputStream 2.ByteArrayPool 3.HttpStack 4.HurlStack 5.HttpHeaderParser 前面 ...
- Android 学习笔记之Volley开源框架解析(四)
学习内容: 1.NetWorkDispatcher网络请求线程调度... 2.NetWork网络请求抽象类... 3.BasicNetWork网络请求抽象类的具体实现... 4.NetWorkResp ...
- Android 学习笔记之Volley开源框架解析(一)
PS:看完了LGD的六场比赛...让人心酸... 学习内容: 1.Http请求的过程... 2.Volley的简单介绍... 1.Http请求... 这里只是简单的说一下Http请求的过程.. ...
- Android 学习笔记之Volley开源框架解析(三)
学习内容: 1.CacheDispatcher缓存请求调度... 2.Cache缓存数据的保存... 3.DiskBasedCache基于磁盘的缓存类实现方式... 前面说到使用Volley发 ...
随机推荐
- javaScript嵌入式环境Duktape的安装
Duktape 是一个轻量级的嵌入式 JavaScript 引擎,使用duktape可以通过javascript对ESP32进行编程. 首先在下载duktape文件包 mkdir duktape cd ...
- Python学习-30.Python中的元组(tuple)
元组使用()定义,元组一旦定义就无法修改. 元组的索引方式同列表,也是使用[]. 元组也可以进行切片操作,使用方式同列表一样. 可以说,一个没法修改的列表就是元组. 在没有修改操作的情况下,应尽可能使 ...
- (转)(WinForm)FormBorderStyle属性
原地址
- SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)
数据库同时备份到两台服务器上(并自动删除过期文件) 举例 :(本地)服务器A: IP :192.168.1.1 (远程)服务器B: IP :192.168.1.2 数据库版本:SqlServer200 ...
- vue-router页面传值及接收值
主页 “去第二个页面”方法传值1 <template> <div id="app"> <div><router-link to=&quo ...
- 如何用c#本地代码实现与Webbrowser中的JavaScript交互
关键词:.Net,Webbrowser,JavaScript,communication 参考: 链接:msdn实例-简单的相互调用 代码: [PermissionSet(SecurityAction ...
- 《JavaScript模式》一书中提到的一些坑
1. 应当用数组字面量来创建数组,而不是用new Array() //反模式 var a = new Array('itsy', 'bitsy', 'spider'); //用字面量 var a = ...
- JVM内存回收区域+对象存活的判断+引用类型+垃圾回收线程
此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 注意:本文主要参考自<深入理解Java虚拟机(第二版)> 说明:查看本文之前,推荐先知道JVM ...
- 敏捷项目-依赖项拖动change
1. 2.类方法插入数据.
- day 93 Restframwork
苑昊博客: http://www.cnblogs.com/yuanchenqi/articles/7570003.html 一.queryset 特性 from django.db import m ...