android定位GPS定位 代码实现
package com.lx.util; |
import
android.content.Context;
import
android.content.SharedPreferences;
import
android.content.SharedPreferences.Editor;
import
android.location.Criteria;
import
android.location.Location;
import
android.location.LocationListener;
import
android.location.LocationManager;
import
android.os.Bundle;
/*
* 要求是单态的 ,只允许存在一个实例.
* 获取手机的gps信息
*/
public
class
GPSInfoService {
private
Context context;
private
LocationManager manager;
SharedPreferences sp ;
//1. 私有化构造方法
private
GPSInfoService(Context context){
this
.context= context;
manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
sp = context.getSharedPreferences(
"config"
, Context.MODE_PRIVATE);
}
private
static
GPSInfoService mGPSService;
public
synchronized
static
GPSInfoService getInstance(Context context){
if
(mGPSService==
null
)
mGPSService =
new
GPSInfoService(context);
return
mGPSService;
}
public
void
registerLocationUpdates(){
//当前你的手机 所支持的定位方式获取出来
//有多种定位方式 gps network ,基站, passive
//可以根据定位的条件 ,获取 一个最好的定位方式
Criteria criteria =
new
Criteria();
// 设置定位的精度
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
//获取大体的位置
criteria.setAltitudeRequired(
false
);
// 海拔信息
criteria.setCostAllowed(
true
);
//允许产生费用
criteria.setPowerRequirement(Criteria.POWER_LOW);
//低功耗
//获取一个最符合查询条件的位置提供者
String provider =manager.getBestProvider(criteria,
true
);
// 注册 位置改变的监听器
manager.requestLocationUpdates(provider,
60000
,
0
, getLinster());
}
public
void
cancleLocationUpdates(){
manager.removeUpdates(getLinster());
}
private
static
MyGPSLinster myGPSLinser;
private
MyGPSLinster getLinster(){
if
(myGPSLinser==
null
)
myGPSLinser =
new
MyGPSLinster();
return
myGPSLinser;
}
/**
* 获取手机的最后一次位置
* @return
*/
public
String getLastPosition(){
return
sp.getString(
"lastlocation"
,
""
);
}
private
class
MyGPSLinster
implements
LocationListener{
// 用户位置改变的时候 的回调方法
public
void
onLocationChanged(Location location) {
// TODO Auto-generated method stub
//location
//获取到用户的纬度
double
latitude= location.getLatitude();
double
longitude = location.getLongitude();
String locationstr =
"jing du "
+ longitude +
" weidu :"
+latitude;
Editor editor = sp.edit();
editor.putString(
"lastlocation"
, locationstr);
editor.commit();
}
// 状态改变
public
void
onStatusChanged(String provider,
int
status, Bundle extras) {
// TODO Auto-generated method stub
}
//gps ,打开
public
void
onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
//关闭
public
void
onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
}
}
android定位GPS定位 代码实现的更多相关文章
- [置顶]
xamarin android使用gps定位获取经纬度
看了文章你会得出以下几个结论 1.android定位主要有四种方式GPS,Network(wifi定位.基站定位),AGPS定位 2.绝大部分android国产手机使用network进行定位是没有作用 ...
- Android中GPS定位的简单应用
在Android中通过GPS获得当前位置,首先要获得一个LocationManager实例,通过该实例的getLastKnownLocation()方法获得第一个的位置,该方法的说明如下: void ...
- android 获取GPS定位
AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...
- 【Android】GPS定位基本原理浅析
位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机.掌上电脑等)的标配.而定位导航技术中,目前精度最高.应用最广泛的,自然非GPS莫属了.网络上介绍GPS原理的专业资料很多,而本文 ...
- Android开发——GPS定位
1.LocationManager LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题. 与LocationManager相关的两个知识点: 1.1 ...
- Android之GPS定位详解
一.LocationManager LocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager.我们可以通过如下代码创建LocationManger ...
- Arcgis API for Android之GPS定位
欢迎大家增加Arcgis API for Android的QQ交流群:337469080 先说说写这篇文章的原因吧,在群内讨论的过程中,有人提到了定位的问题,刚好,自己曾经在做相关工作的时候做过相关的 ...
- Arcgis For Android之GPS定位实现
翻开曾经做的东西,看了看,非常多从逻辑上比較乱,对之做了改动,完毕后实现的效果为: MapActivity源码例如以下: package com.lzugis.map; import java.io. ...
- Gps定位和wifi定位和基站定位的比较
现在手机定位的方式是:Gps定位,wifi定位,基站定位 Gps定位的前提,手机开启Gps定位模块,在室外,定位的精度一般是几米的范围 wifi定位的前提,手机要开启wifi,连不连上wifi热点都可 ...
随机推荐
- HDOJ 4508 湫湫系列故事——减肥记I (完全背包带优化)
完全背包的模版题.. 加了一个小优化 n^2的写法 O(V+N)在本题中复杂度较高 不采纳 完全背包问题有一个很简单有效的优化,是这样的:若两件物品i.j满足c[i]<=c[j]且w[i]&g ...
- AS错误:Please configure your build for VectorDrawableCompat.
运行第一个Android Stdio程序就出现下面这个问题,由于对Android Stdio不熟悉整了三个小时才解决,希望这篇博客能帮助更多的人. 问题:Caused by:java.lang.Run ...
- HTML5和CSS3基础教程(第8版)-读书笔记(4)
第16章 表单 表单有两个基本组成部分:访问者在页面上可以看见并填写的控件.标签和按钮的集合:以及用于获取信息并将其转化为可以读取或计算的格式的处理脚本. 基本的表单字段类型包括文本框.单选按钮.复选 ...
- const in C++
const关键字是C++中常用的类型修饰符,用法非常灵活,使用const将大大改善程序的健壮性. const的作用 1. 定义const常量: 比如: const int Max = 100; 2. ...
- HashedWheelTimer 原理
HashedWheelTimer 是根据 Hashed and Hierarchical Timing Wheels: Data Structuresfor the Efficient Impleme ...
- Samba服务器搭建配置
本次环境: 服务端-centos6.8-192.168.2.200 客户端1-centos6.8-192.168.2.201 客户端2-Windows7-192.168.2.104 假设条件如下: 使 ...
- Log4j基本用法
基本使用方法: Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN.INFO.DEBUG,分别用来指定这条日志信 ...
- 设置EditText光标位置
editext.setSelection(int index);
- TestNG中用Parameters或DataProvider为测试方法传入参数
转载于网络 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数. 设置方式有两种方法:使用 te ...
- css页面点击文字出现蓝色底色去掉方法
-moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*webkit浏览器*/ -ms-user-select: non ...