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热点都可 ...
随机推荐
- CommandArgument传多个参数
CommandArgument='<%#Eval("id")+","+Eval("interName") %>'
- 新创建的项目利用git添加远程仓库
git initgit remote add origin https:// //git账号中的网址 (git remote //可以查询添加的远程仓库) git add . //添加刚刚导入的整个工 ...
- (转)对Oracle导出文件错误和DMP文件结构的分析,EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier
EXP-00008: 遇到 ORACLE 错误 904 ORA-00904: "MAXSIZE": invalid identifier 原因:oracle版本不一样 执行 C:/ ...
- Verilog之串口(UART)通信
0:起始位,低电平:1~8:数据位:9:校验位,高电平:10:停止位,高电平. 波特率 “9600bps”表示每秒可以传输9600位. 波特率定时计数器由时钟频率除以波特率. 采集1~8位,忽略0.9 ...
- [Chapter 3 Process]Practice 3.5 When a process creates a new process using the fork() operation
3.5 When a process creates a new process using the fork() operation, which of the following state is ...
- 【转】jquery validate验证框架与kindeditor使用需二次提交的问题
原文:http://blog.csdn.net/wlsyn/article/details/11536399在使用jquery的验证框架对kindeditor富文本编辑器进行验证的过程中,发现提 交时 ...
- Xcode升级更新后,恢复cocoapods以及插件的方法
今天将手机系统更新到iOS9.3了,在Xcode7.1上做真机调试,提示找不到适合的SDK,才知道必须要升级Xcode才行,于是升级Xcode到7.3. 升级之后遇到很多麻烦,cocoapods没有了 ...
- javascript的原型和继承(1)
原型与继承是javascript中基础,重要而相对比较晦涩难解的内容.在图灵的网上看到一篇翻译过的文章,有参考了一些知名博客.我自己总结了几篇.通过这次的总结,感觉自己对原型和继承的认识又增加了很多, ...
- html + css (1)
a{ text-decoration:none; /* 规定添加到文本的修饰;下划线没有了 */ margin:0px; font-size:15px; display: block; /* 以块级元 ...
- C2第四次作业解题报告
看过题解后如果觉得还算有用,请帮忙加点我所在团队博客访问量 http://www.cnblogs.com/newbe/ http://www.cnblogs.com/newbe/p/4069834.h ...