Android中获取当前位置的使用步骤
在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中获取当前位置的使用步骤相关推荐
- android自动获取位置,Android中获取当前位置信息
这篇教程主要介绍了在Android平台上如何使用服务完成定位功能.众所周知,Android设备的当前位置信息,对开发创新性App.解决人们日常生活问题有极大帮助.在Android平台开发定位相关的应用 ...
- Android中获取天气,android中获取即刻天气
android中获取即时天气 先看效果: 需求非常简单,在菜单中加入天气查询的按钮,点击后显示即时天气. 准备工作: 1.下载华为能力SDK:http://imax.vmall.com/nj-camp ...
- 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 ...
- 显示android 运行时异常,在android中获取运行时异常
我做了一个简单的android应用程序,从一个活动移动到另一个活动,长度为5个编辑文本输入.但我得到了例外.我附加了两个java文件(MainActicity和Another),mainfest文件和 ...
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
关于PackageManager和ActivityManager的使用 ,自己也写了一些DEMO 了,基本上写的线路参考了Settings模块下的 应用程序,大家如果真正的有所兴趣,建议大家看看源码, ...
- Android中获取网络图片的三种方法
android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况.对于这种情况,一般的方法就是耗时操作用 ...
- android中获取时间
android中获取时间 1)通过calendar类获取 Calendar calendar = Calendar.getInstance(); int moth = calendar.get(Cal ...
- android EditText获取光标位置并安插字符删除字符
android EditText获取光标位置并插入字符删除字符 1.获取光标位置 int index = editText.getSelectionStart(); 2.在光标处插入字符 int in ...
- android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...
Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...
最新文章
- opencv findContours 崩溃CrtDbgBreak
- linux中如何查找文件中内容
- MATLAB二维图形坐标变换
- deebot扫地机器人怎么清洁_智能清洁小助手开始工作 360扫地机器人S7评测
- JPA EntityListeners中的Spring注入的Bean
- docker 远程连接 文件看不到_pycharm连接远程linux服务器的docker
- mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表
- C语言辅导试题答案,C语言试题含答案).doc
- Day7 子类调用父类的方法supper 绑定方法与非绑定方法
- centos配置mysql
- 简单的文本文件加密小程序
- 在表达式 T(n) = 2T(n/2) + O(1) 与 T(1) = O(1) 中,T(n) 的时间复杂度为多少?
- Ubuntu 重新安装声卡驱动
- 为什么红黑树查询快_面试被问“红黑树”,我一脸懵逼…
- JBoss 中间件漏洞
- Session存值取值问题及取不到值的问题
- 华为手机nova计算机怎么找过程,华为nova手机拆机全过程 华为nova真机拆解图解教程...
- window cmd 创建文本文件
- 【网页设计】期末大作业html+css(我的音乐网站)
- 如何在500个甚至上千微信群运营推广和赚钱?
热门文章
- redis ubuntu php 5.2,ubuntu 14.04下简易安装php5.5 + apache2 + redis + mysql
- MySQL数据库序列的作用_MySQL数据库:序列使用
- 4g模块注册上网 移远_Openwrt支持移远4G模块过程记录
- oracle数据提交不上去,oracle数据库命令窗口执行了语句但是没有提交会有什么影响吗...
- linux 控制台输入命令无效_解决linux下终端无法输入的假死问题
- editor修改样式 vue_手摸手Electron + Vue实战教程(三)
- Oracle使用ini启动,python操作ini类型配置文件的实例教程
- node:http协议、sql、接口
- 2020.11.me
- Java路径问题最终解决方案—可定位所有资源的相对路径寻址