[android] 手机卫士手机定位的原理

手机定位的三种方式:网络定位,基站定位,GPS定位

 

 

网络定位,手机连上wifi 2g 3g的时候,手机会有一个ip,误差很大

基站定位,精确度与基站的多少有关,几十米到几公里的误差

GPS定位,至少需要三颗卫星才能定位,在空旷的地方准确

 

手机使用A-GPS需要网络来辅助定位,定位速度快,网络记录了上次的卫星轨道,

 

 

获取LocationManager对象,通过getSystemService(LOCATION_SERVICE)

调用LocationManager对象的requestLocationUpdates()方法,请求位置更新,参数:

定位方式(“gps”),更新时间(60000),更新距离(50),LocationListener对象

 

LocationListener是一个接口,需要做它的实现类

定义MyLocationListener实现LocationListener,实现它下面的方法

onLocationChanged(),当位置改变的时候回调,传递进来一个Location对象

调用location对象的getLongitude()方法,得到经度

调用Location对象的getLatitude()方法,得到维度

调用Location对象的getAccuracy()方法,得到精确度

 

onStatusChanged(),当状态改变的时候回调,关闭 开启

onProviderEnabled(),当某一个位置提供者可用了

onProviderDisabled(),当某一个位置提供者不可用了

 

activity销毁的时候,取消监听位置

重写activityonDestroy()方法

调用LocationManager对象的removeUpdates(),取消监听,参数:LocationListener对象

LocationListener对象置为null,垃圾回收

 

需要的权限

android.permission.ACCESS_FINE_LOCATION 获取精准位置

android.permission.ACCESS_COARSE_LOCATION 获取粗略的位置

android.permission.ACCESS_MOCK_LOCATION 获取模拟的位置(模拟器开发的时候)

 

模拟器上,ddms里面发送以下位置,才能显示

 

国家对坐标进行了加偏处理,变成火星坐标,需要国家测绘局的插件,网上有火星坐标转换代码

package com.tsh.mylocation;import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;public class MainActivity extends Activity {private LocationManager lm;private LocationListener listener;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取位置管理器lm=(LocationManager) getSystemService(LOCATION_SERVICE);listener=new MyLocationListener();lm.requestLocationUpdates("gps", 0, 0, listener);}private class MyLocationListener implements LocationListener{@Overridepublic void onLocationChanged(Location location) {//获取经度String longitude="经度:"+location.getLongitude();String latitude="纬度:"+location.getLatitude();String acc="精确度:"+location.getAccuracy();Toast.makeText(MainActivity.this, longitude+latitude+acc, 1).show();}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onProviderDisabled(String provider) {}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

antd table设置表格一个单元格的字体颜色_alireacttable:高性能 React 表格组件

点击上方蓝字关注我们简介在前端开发中,表格一直都是最复杂的组件之一。表格不仅要支持丰富的操作(排序、过滤、搜索、分页、自定义列等),还要有非常好的性能以展示大量数据。很多组件库(例如 fusion design,ant design)提供了功能丰富的表格…

t580 thinkpad_聊聊ThinkPad T580:除了大屏,还有什么

我曾在 IBM 就职过一段时间,当时办公室内清一色的都是 ThinkPad 笔记本和 ThinkStation 台式机,给我配备的就是一台 ThinkPad T430,它稳定的表现和扎实的做工一度让我印象深刻,而这也是我与 ThinkPad 的前端次接触。数年之后&…

linux修改arena大小,Resolume Arena怎么设置大屏幕 调整画面屏幕的方法

如果你想要制作VJ视频,那么Resolume Arena绝对可以满足你的所有需求,小编近期了解到很多用户不知道怎么设置大屏幕,如果你还不知道具体的操作方法,就赶快来看看下面的教程吧!操作步骤如下:1、如果你在使用R…

linux-休眠命令

参考:http://blog.csdn.net/hshl1214/article/details/6228275 命令行中执行如下:[rootfsc feng]# file /sys/power/state/sys/power/state: ASCII text[rootfsc feng]# cat /sys/power/statestandby mem disk[rootfsc feng]# echo “mem”>/sys/powe…

for each循环_Power Query — 循环初步

题记:《Excel圣经》1:3 微软说,“要有循环”,便有了循环。引子:keyword: one of and as each else error false if in is let meta not otherwise or section shared then true try type #binary #date #datetime #datetimezone #…

linux 直接映射 页表大小,linux 启动过程临时页表到底映射了多大内存?

从linux-2.4内核开始,在建立临时页表的时候,一般的教科书都说是映射了8M的物理内存,但是为什么是映射8M呢?当时网上有资料说,8M足够了,但为什么就足够了,一直没有彻底搞清楚,今天又重…

字符串字段当条件查询的时候需要加引号吗_如此详细的SQL优化教程,是你需要的吗?...

基础数据准备二:五百万数据插入上面插入几条测试数据,在使用索引时还需要插入更多的数据作为测试数据,下面就通过存储过程插入500W条数据作为测试数据三:使用索引和不使用索引的比较没有添加索引前一个简单的查询用了1.79秒创建索…

使用CoreImage教程

使用CoreImage教程 CoreImage包含有很多实用的滤镜,专业处理图片的库,为了能看到各种渲染效果,请使用如下图片素材. 现在可以开始教程了: #define FIX_IMAGE(image) fixImageWidth(image, 320.f)// 固定图片的宽度 UIImage * fixImageWidth(UIImage *image, CGFloat width) {f…

电脑生成siri语音_米家智能台灯1S全新升级,支持小爱和Siri的语音控制

夜晚的灯光是我们最为需要的东西,但很多时候,我们需要灯照在不同的地方,平时我只靠吸顶灯的光来照亮家里的每一个角落,甚至是看书的时候都只靠吸顶灯照明。台灯作为占用面积小,光照均匀,让很多的人越来越依…

linux vnc检查,检查Ubuntu VNC设置(避免远程登陆)

(1)安装x11vncsudo apt-get install x11vnc(2)将x11vnc加入xinetdsudo gedit /etc/xinetd.d/x11vnc加入下面这段service x11vnc{ port 5900 type UNLISTED socket_type stream protocol tcp wait …

JavaScript网络地址作为参数_JavaScript之bind的模拟实现

阅读本文约需要5分钟大家好,我是你们的导师,我每天都会给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。昨天给大家分享了JavaScript的call和apply的模拟实现,今天给大家分享一下bind的模拟实现。什么是bind&#xf…

c#输入三个数选出最大的_C#习题,3、 输入三个数字,输出他们的最大值。(if) | 学步园...

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[] args){int i1 Int("一");int i2 Int("二");int i3 Int("三");if (i1 > i2…

Node.js进程管理之Process模块

在前面Node.js事件运行机制也有提到,Node.js应用在单个线程运行,但是现在大部分服务器都是多处理器,为了方便使用多个进程,Node.js提供了3个模块。Process模块提供了访问正在运行的进程。child_process模块可以创建子进程,并与他们通信。cluster模块提供了实现共享相…

cdh集群linux命令,CDH集群中,服务器启动spark2-shell命令行注意事项

1、环境cdh5.12.3spark2 2.3.02、需要本地地洞spark2-shell用于环境测试错误一:Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.NoClassDefFoundError: org/slf4j/Loggerat java.l…

ue4如何恢复初始状态_如何解决三菱伺服电机上常见报警代码

如何解决三菱伺服电机上常见报警代码,伺服电机报警时电机停止方式与报警解除呢?那么报警解除具体方法有哪些?下面小编为你分享如何解决三菱伺服电机上常见报警代码。1、报警时伺服电机的停止方式停止方式中记载为SD的报警及警告在强制停止减速…

python的六个类型_介绍Python中6个序列的内置类型

原标题:介绍Python中6个序列的内置类型 1、Python中6个序列的内置类型分别是什么? Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。序列通用的操作包括:索引、长度、组合(序…

经典排序算法之基数排序(C语言版)

排序算法之基数排序的C语言实现。#include "math.h" #include "stdio.h"/* * 基数排序 2016-04-18 23:43:49 * 基数排序的思想:1.求出数组中最大的元素。 * 2.求出最大元素是几位数。设为i位。 * 3.对所有的数进行i轮排序。首先排个位&a…

c语言long的格式字符串,时间字符串和long类型之间的转换

2015-08-29 10:15:01在进行时间存储时,经常会对时间字符串进行转型存储,一般都是存储为long类型,下面我先来说一下如何将时间字符串转换为long类型:如果时间字符串只有年月日,可以这样转储var ddate new Date(2014-0…

python语音转文字软件_python编写语音转文字软件|语音转文字工具免费版下载(语音批量转换文字) v2.0 最新版_数码资源网...

没有专业的工具怎么能够将语音转换为文字呢?小编为大家提供了语音转文字工具免费版,一款通过Python编写语音转文字软件。用户通过使用语音转文字工具免费版,可以将语音批量转换文字,而且操作也是非常的简单,如果你需要…

Spring-bean作用域scope详解

2019独角兽企业重金招聘Python工程师标准>>> 默认情况下,从bean工厂所取得的实例为Singleton(bean的singleton属性) Singleton: Spring容器只存在一个共享的bean实例,是默认的配置。 Prototype: 每次对bean的请求都会创…