在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中获取当前位置信息

    这篇教程主要介绍了在Android平台上如何使用服务完成定位功能.众所周知,Android设备的当前位置信息,对开发创新性App.解决人们日常生活问题有极大帮助.在Android平台开发定位相关的应用 ...

  2. Android中获取天气,android中获取即刻天气

    android中获取即时天气 先看效果: 需求非常简单,在菜单中加入天气查询的按钮,点击后显示即时天气. 准备工作: 1.下载华为能力SDK:http://imax.vmall.com/nj-camp ...

  3. python 打印当前行号_python中获取当前位置所在的行号和函数名(转)

    http://www.vimer.cn/2010/12/%E5%9C%A8python%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E4%BD%8D%E7 ...

  4. 显示android 运行时异常,在android中获取运行时异常

    我做了一个简单的android应用程序,从一个活动移动到另一个活动,长度为5个编辑文本输入.但我得到了例外.我附加了两个java文件(MainActicity和Another),mainfest文件和 ...

  5. Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用

    关于PackageManager和ActivityManager的使用 ,自己也写了一些DEMO 了,基本上写的线路参考了Settings模块下的 应用程序,大家如果真正的有所兴趣,建议大家看看源码, ...

  6. Android中获取网络图片的三种方法

    android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况.对于这种情况,一般的方法就是耗时操作用 ...

  7. android中获取时间

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

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

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

  9. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...

    Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...

最新文章

  1. opencv findContours 崩溃CrtDbgBreak
  2. linux中如何查找文件中内容
  3. MATLAB二维图形坐标变换
  4. deebot扫地机器人怎么清洁_智能清洁小助手开始工作 360扫地机器人S7评测
  5. JPA EntityListeners中的Spring注入的Bean
  6. docker 远程连接 文件看不到_pycharm连接远程linux服务器的docker
  7. mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表
  8. C语言辅导试题答案,C语言试题含答案).doc
  9. Day7 子类调用父类的方法supper 绑定方法与非绑定方法
  10. centos配置mysql
  11. 简单的文本文件加密小程序
  12. 在表达式 T(n) = 2T(n/2) + O(1) 与 T(1) = O(1) 中,T(n) 的时间复杂度为多少?
  13. Ubuntu 重新安装声卡驱动
  14. 为什么红黑树查询快_面试被问“红黑树”,我一脸懵逼…
  15. JBoss 中间件漏洞
  16. Session存值取值问题及取不到值的问题
  17. 华为手机nova计算机怎么找过程,华为nova手机拆机全过程 华为nova真机拆解图解教程...
  18. window cmd 创建文本文件
  19. 【网页设计】期末大作业html+css(我的音乐网站)
  20. 如何在500个甚至上千微信群运营推广和赚钱?

热门文章

  1. redis ubuntu php 5.2,ubuntu 14.04下简易安装php5.5 + apache2 + redis + mysql
  2. MySQL数据库序列的作用_MySQL数据库:序列使用
  3. 4g模块注册上网 移远_Openwrt支持移远4G模块过程记录
  4. oracle数据提交不上去,oracle数据库命令窗口执行了语句但是没有提交会有什么影响吗...
  5. linux 控制台输入命令无效_解决linux下终端无法输入的假死问题
  6. editor修改样式 vue_手摸手Electron + Vue实战教程(三)
  7. Oracle使用ini启动,python操作ini类型配置文件的实例教程
  8. node:http协议、sql、接口
  9. 2020.11.me
  10. Java路径问题最终解决方案—可定位所有资源的相对路径寻址