手机定位的三种方式:网络定位,基站定位,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销毁的时候,取消监听位置

重写activity的onDestroy()方法

调用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;
@Override
protected 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{ @Override
public 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();
} @Override
public void onStatusChanged(String provider, int status, Bundle extras) { } @Override
public void onProviderEnabled(String provider) {
} @Override
public void onProviderDisabled(String provider) { } }
}

[android] 手机卫士手机定位的原理的更多相关文章

  1. [android] 手机卫士手机实现短信指令获取位置

    获取位置  新建一个service的包 新建一个GPSService类继承系统的Service类 清单文件中注册一下 重写onCreate()方法,服务创建的时候回调 重写onDestroy()方法, ...

  2. Android项目实战--手机卫士开发系列教程

    <ignore_js_op> banner131010.jpg (71.4 KB, 下载次数: 0) 下载附件  保存到相册 2 分钟前 上传   Android项目实战--手机卫士01- ...

  3. Android核心基础(手机卫士的一个知识点总结)

    注意:有些功能是需要权限的,在这里并没有写出来,在程序运行中,根据程序报的错误,添加相应的权限即可,里面的具体里面可能有一些小细节,没有明确的写出来,具体的需要在程序中自己调试,解决. 这个总结涵盖了 ...

  4. Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果

    大家好,今天给大家带来一个仿360手机卫士悬浮窗效果的教程,在开始之前请允许我说几句不相干的废话. 不知不觉我发现自己接触Android已有近三个年头了,期间各种的成长少不了各位高手的帮助,总是有很多 ...

  5. Android 手机卫士--参照文档编写选择器

    本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.ht ...

  6. Android 手机卫士--设置界面&功能列表界面跳转逻辑处理

    在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959. ...

  7. Android 手机卫士--确认密码对话框编写

    本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. ...

  8. Android 手机卫士--阶段小结1

    本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址. 本文对之前手机卫士开发进行一个小结. 1.SplashActivity 版本 ...

  9. Android 手机卫士--安装过程中点击回退按钮

    本文地址:http://www.cnblogs.com/wuyudong/p/5903707.html,转载请注明源地址. 在手机卫士之前的版本升级的对话框中: 有的用户暂时不想更新,没有点击“稍后再 ...

随机推荐

  1. youtube-dl 安装和用法

    以windows为例 下载python2最新版本并安装,选择添加到PATH 下载ffmpeg最新版本并解压,在控制面板->高级系统设置->环境变量->PATH里添加解压之后的bin文 ...

  2. python之os库

    python之os库 os.name 判断现在正在实用的平台,Windows 返回 'nt'; Linux 返回'posix' >>> os.name 'nt' os.getcwd( ...

  3. Codeforces828 B. Black Square

    B. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. 关于HttpClient,HttpURLConnection,OkHttp的用法

    1 HttpClient入门实例 1.1发送get请求 /** * HttpClient发送get请求 * @param url 请求地址 * @return * @throws IOExceptio ...

  5. JDK、JRE、JVM之间的关系

       JDK.JRE.JVM之间的关系 1.JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...

  6. win7安装vs2017时闪退

    最近用公司的笔记本电脑,装win10发现太卡,无奈最终选择安装win7系统,本以为系统安装成功了,接下来只要安装下开发环境:vs2017 sqlserver等就好,结果在安装vs2017的时候,一直出 ...

  7. Jira/Confluence的备份、恢复和迁移

    之前的文章已经分别详细介绍了Jira.Confluence的安装及二者账号对接的操作方法,下面简单说下二者的备份.恢复和迁移: 一.Jira.Confluence的备份.恢复1)Confluence的 ...

  8. kubernetes集群搭建(1):环境准备

    了解kubernets 本次搭建采用的是1个master节点,2个node节点,一个私有docker仓库 1.设置各节点ip信息 2.设置hostname(其它节点也需修改) vi /etc/sysc ...

  9. 撰写一篇博客要求讲述四则运算2的设计思想,源程序代码、运行结果截图、编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志。

    一.撰写一篇博客要求讲述四则运算2的设计思想,源程序代码.运行结果截图.编程总结分析,并按照PSP0级的要求记录开发过程中的时间记录日志. 1.设计思想: ①创建test.jsp建立第一个前端界面,提 ...

  10. 各种height 以及判断滚动条是否已拉到页面最底部

    DTD已声明 IEdocument.documentElement.scrollHeight  浏览器所有内容高度 ,document.body.scrollHeight  浏览器所有内容高度docu ...