在Android中得到当前位置的步骤

1.在AndroidManifest.xml中声明权限

android.permission.ACCESS_FINE_LOCATION(或者android.permission.ACCESS_COARSE_LOCATION)

2.声明并实例化一个LocationManager对象

这个类提供了关于获取位置信息的服务,用于管理Android的定位服务。这个类同意应用定期的更新地理位置信息,同一时候同意当到达指定地点时候激活相关的Intent。

LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

3.声明并设置Criteria对象。

这个类是用来选择合适的provider的,他设置了一些条件,通过对这些条件进行筛选。系统得到最优的provider对象。条件有:精度,耗电量。海拔,方位,速度以及付费情况等。

Criteria criteria=new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE); //精度要求:
ACCURACY_FINE(高)ACCURACY_COARSE(低)
criteria.setAltitudeRequired(false); // 不要求海拔信息
criteria.setBearingAccuracy(Criteria.ACCURACY_HIGH); //方位信息的精度要求:
ACCURACY_HIGH(高)ACCURACY_LOW(低)
criteria.setBearingRequired(false); // 不要求方位信息
criteria.setCostAllowed(true); // 是否同意付费
criteria.setPowerRequirement(Criteria.POWER_LOW); // 对电量的要求 (HIGH、MEDIUM)

4.依据criteria的条件获取最合适的provider。

第二个參数是指是否仅仅返回当前处于激活状态的provider。

String provider=locMan.getBestProvider(criteria,true);

在这里简单介绍一下provider。provider是LocationManager获取位置信息的途径,经常使用的有两种:GPS和NETWORK。

GPS定位:更精确,缺点是仅仅能在户外使用,耗电严重,而且返回用户位置信息的速度远不能满足用户需求。须要在AndroidManifest.xml中声明权限:

android.permission.ACCESS_FINE_LOCATION

NETWORK定位:通过基站和Wi- Fi信号来获取位置信息,室内室外均可用。速度更快,耗电更少。须要在AndroidManifest.xml中声明权限:

android.permission.ACCESS_FINE_LOCATION
或者:android.permission.ACCESS_COARSE_LOCATION

使用locMan.getAllProviders();能够获得全部已知provider的list。

为了获取用户位置信息,我们能够使用多种定位方式的当中一个。也能够同一时候使用多个。

5.设置监听器

设置有关更新操作的一些条件(时间间隔,距离间隔),监听器会定期的更新位置信息。这里设置了使用之前得到的最优provider。更新位置操作的时间间隔为1000毫秒,距离间隔为5米,绑定LListener监听器。

locMan.requestLocationUpdates(provider, 1000, 5, new LListener());

6.获取地理位置信息

返回provider近期获得的位置信息。

Location loc = locMan.getLastKnownLocation(provider);

7.补充

如有须要,我们能够将Location信息转化为GeoPoint。

函数例如以下

private GeoPoint getGeoByLocation(Location loc){
GeoPoint gp = null;
if(loc != null){
double latitude = loc.getLatitude() * 1E6;
double longitude = loc.getLongitude() * 1E6;
gp = new GeoPoint((int)latitude, (int)longitude);
}
return gp;
}

以上文章转载自网络。对于上述信息已得到本地验证使用,对于综合使用的实例在 一文中已经实现。请移步查看。

Android中获取当前位置的使用步骤的更多相关文章

  1. android 中获取视频文件的缩略图(非原创)

    在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...

  2. android中获取root权限的方法以及原理(转)

    一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...

  3. URL转Drawable之 Android中获取网络图片的三种方法

    转载自: http://doinone.iteye.com/blog/1074283 Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Applicatio ...

  4. android EditText获取光标位置并安插字符删除字符

    android EditText获取光标位置并插入字符删除字符1.获取光标位置int index = editText.getSelectionStart(); 2.在光标处插入字符int index ...

  5. Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    通过第一部分<<Android中获取应用程序(包)的信息-----PackageManager的使用(一)>>的介绍,对PackageManager以及 AndroidMani ...

  6. Android中获取正在运行的应用程序-----ActivityManager.RunningAppProcessInfo类详解

    今天继续讲解关于ActivityManager的使用,通过前面一节的学习,我们学会了如何利用ActivityManager获取系统里 正在运行的进程.本文要讲解的知识点是利用这些进程信息获取系统里正在 ...

  7. android中获取时间

    android中获取时间 1)通过calendar类获取 Calendar calendar = Calendar.getInstance();int moth = calendar.get(Cale ...

  8. Android中获取网页表单中的数据实现思路及代码

    在Android中获取网页里表单中的数据具体实现代码如下,感兴趣的各位可以参考过下哈,希望对大家有所帮助 MainActivity如下: 复制代码 代码如下: package cn.testjavas ...

  9. Android中获取网页表单中的数据

    MainActivity如下: package cn.testjavascript; import java.util.StringTokenizer; import android.os.Bundl ...

随机推荐

  1. snmp agent 表格实现(子代理方式实现)

    前奏參见例如以下: http://blog.sina.com.cn/s/blog_8f3de3250100xhao.html http://blog.csdn.net/hepeng597/articl ...

  2. amazeui学习笔记一(开始使用4)--Web App 相关

    amazeui学习笔记一(开始使用4)--Web App 相关 一.总结 1.桌面图标(Touch icon)解决方案:终极方案:link标签的rel和href属性: <link rel=&qu ...

  3. Visual Studio Team Services持续集成到Github仓库

    Devops如何用VSTS持续集成到Github仓库!   工欲善其事,必先利其器.在开始正式的教程之前我们先来聊聊准备工作. 管理工具会VSTS. 代码管理会用GITHUB. 服务器会用Azure. ...

  4. Nginx配置GZIP

    记录一次解决网站加载慢的问题 一. nginx配置 gzip on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.1;g ...

  5. Vue使用Promise自定义confirm确认框组件

    使用Promise模拟浏览器确认框,可自定义标题,内容,按钮文字和类型 参数名 类型 说明 title String 标题 content String 内容 yesBtnText String 确认 ...

  6. 00091_字符输入流Reader

    1.字符输入流Reader (1)字符输入流Reader我们读取拥有中文的文件时,使用的字节流在读取,那么我们读取到的都是一个一个字节: (2)只要把这些字节去查阅对应的编码表,就能够得到与之对应的字 ...

  7. 【Codeforces Round #447 (Div. 2) C】Marco and GCD Sequence

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把gcd(a[1..n])放在输入的n个数之间. [代码] /* 1.Shoud it use long long ? 2.Have ...

  8. 启动Tomcat,startup.bat一闪而过的解决办法

    1.打开命令行:win+R --> cmd2.将解压后的tomcat\bin\startup.bat文件拖到控制台窗口中,回车. 这样就可以看到错误信息的提示,根据提示修改即可.

  9. vue 图片lazyload

    今天看到我一醉哥的一篇朋友圈分享:<不如我们从头来过 | 掘金> 看完之后,百感交集,互联网的浪潮使创业公司如雨后春笋般崛起, 每一个初创公司都会有一群怀着美好愿景的小伙伴, 但是当寒冬来 ...

  10. softmax 与 sigmoid & softmax名字的由来

    Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广. 参考:http://blog.csdn.net/u014422406/article/details/52805924 ...