1、获得LocationManager引用

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

2、获取最后一次成功定位的位置信息,取值包括:

  • GPS_PROVIDER:GPS获得
  • NETWORK_PROVIDER:网络获得
  • PASSIVE_PROVIDER:其他应用程序提供
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

3、获取所有定位提供者

List<String> providers = locationManager.getAllProviders();

4、获取指定定位提供者

LocationProvider provider = locationManager.getProvider(Provider name);

5、判断指定定位提供者是否可用

locationManager.isProviderEnabled(provider);

6、获取可用的定位提供者

List<String> providers = locationManager.getProviders(true);

7、获取可用的定位提供者,并且用criteria对象指定条件

Criteria criteria = new Criteria(); // 创建一个定位准则对象
criteria.setAccuracy(Criteria.ACCURACY_COARSE); // 设置定位精确度
criteria.setAltitudeRequired(true); // 设置是否需要海拔信息
criteria.setBearingRequired(true); // 设置是否需要方位信息
criteria.setCostAllowed(true); // 设置是否允许运营商收费
criteria.setPowerRequirement(Criteria.POWER_LOW); // 设置对电源的需求
List<String> providers = locationManager.getProviders(criteria, true);

8、获取最佳定位提供者

String bestProvider = locationManager.getBestProvider(criteria, true);

9、在onResume()中注册接收位置跟新事件的接收器

locationManager.requestLocationUpdates(bestProvider,
300,// 间隔多少毫秒通知
0,// 最小间隔距离变化通知
mLocationListener);

10、在onPause()中删除注册

locationManager.removeUpdates(mLocationListener);

11、位置监听器

// 定义一个位置变更监听器
private LocationListener mLocationListener = new LocationListener() {@Overridepublic void onLocationChanged(Location location) {latitude = location.getLatitude();longitude = location.getLongitude();}//当禁用的提供程序被调用时会立即调用@Overridepublic void onProviderDisabled(String arg0) {}//用户启用提供程序时被调用@Overridepublic void onProviderEnabled(String arg0) {}//状态变化时被调用@Overridepublic void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
};

12、在AndroidManifest.xml开启权限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

13、请求定位授权

//这里以ACCESS_COARSE_LOCATION为例
if (this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {//申请WRITE_EXTERNAL_STORAGE权限this.requestPermissions(new String[] {Manifest.permission.ACCESS_COARSE_LOCATION}, 100);//自定义的code 随便填一个数
} else {// 用户已授权定位信息}

14、授权回调

// 授权回调。询问是否同意授权的时候,系统会弹出对话框,我们选择之后,会进行回调。在回调里面进行判断。
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode) {case 100: {if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 权限被用户同意。// 执形我们想要的操作} else {Log.i("GPS", "未授权定位权限");LToast.showToast("未授权定位权限");// 用户授权定位信息}}}
}

Android获取定位经纬度相关推荐

  1. android 获取定位坐标,在百度地图出现大偏移的处理办法

    问题现象: 通过android原生api获取到gps坐标,调用百度的地图api在手机上显示时,发现偏移距离超过1KM. android获取定位坐标的代码,网上很多不再粘贴. 问题分析: android ...

  2. vue 微信公众号获取定位经纬度 腾讯地图逆地址解析为具体地址

    最近做项目需要用到 微信公众号获取定位,并将定位转换为具体地址的需求,找了挺多,最后整理下,分享给大家~ 我这里使用的是腾讯地图,也可以使用其他的如百度.高德等. 思路是,先使用微信开放文档的获取定位 ...

  3. 【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 一.获取定位信息 开启定位相关功能只是将定位的前提条件准备好,若想获得手机当前所处的位置信息,还要依靠下列的3种定位工具. (1)定位条件器Crite ...

  4. Android 获取定位权限,获取位置信息(国家、地区、经纬)

    第一步 授权 在 AndroidManifest.xml 中加上位置信息权限按需要添加 <uses-permission android:name="android.permissio ...

  5. android获取当前经纬度,并用地图显示跟踪

    最近做了一个android的小东西(愁了一星期 ):通过手机获取当前经纬度,通过线程(异步)时时通过socket向服务器发送定位数据,并调用google地图来追踪,并用textView来显示运行时的日 ...

  6. STM32+安信可GP-01定位模块实现获取定位经纬度信息

    文章目录 GP-01模组简介 1.硬件准备 1.1 GP-01-Kit 1.2 STM32F103C8T6核心板或者最小开发板 1.3 接线方式 2.软件准备 2.1 MDK(Keil v5) 2.2 ...

  7. 微信小程序整合高德地图获取定位经纬度信息

    1.登录高德地图https://lbs.amap.com/ a.创建新应用 这个key后边整合的时候会用到,精彩继续 b.下载SDK  https://lbs.amap.com/api/wx/down ...

  8. android百度地图轨迹实现,android 获取GPS经纬度在百度地图上绘制轨迹

    实现将一组GPS模块获取的经纬度数据在百度地图上绘制轨迹 1.将经纬度转换成百度地图坐标 /** * 标准的GPS经纬度坐标直接在地图上绘制会有偏移,这是测绘局和地图商设置的加密,要转换成百度地图坐标 ...

  9. android 获取GPS经纬度在百度地图上绘制轨迹

    实现将一组GPS模块获取的经纬度数据在百度地图上绘制轨迹 1.将经纬度转换成百度地图坐标 /*** 标准的GPS经纬度坐标直接在地图上绘制会有偏移,这是测绘局和地图商设置的加密,要转换成百度地图坐标* ...

最新文章

  1. 欢迎大家加入我的圈子
  2. Linux下find命令的用法
  3. HDU2091 空心三角形 水题
  4. 微信小程序 引用 map 地图,显示当前位置
  5. request请求在Struts2中的处理步骤
  6. 【canvas系列】canvas实现“ 简单的Amaziograph效果”--画对称图【强迫症福利】
  7. NYOJ 2 括号配对问题
  8. centos7镜像加速_docker 镜像加速CentOS7详细介绍
  9. mocha chai mysql_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
  10. 简介NoSqlOnSql在SQL上实现NOSQL
  11. ubuntu换系统下载路径源
  12. 使用Python抓取网页信息
  13. python的最大优势之一是有理数吗_Python里的有理数类(精度高,可计算)
  14. Linux下安装配置git
  15. python的安装和运行
  16. tensorflow-gpu_TensorFlow GPU单机多卡训练amp;reloadamp;predict
  17. 外企程序员常用英语单词
  18. Python实现同义词替换(哈工大pyltp分词)
  19. 小米路由R4A千兆版安装breed+OpenWRT教程以及救砖(全脚本无需硬改)
  20. ffmpeg命令分析-b:v

热门文章

  1. 电路城(www.cirmall.com)— Altium常用库文件(元件库+封装库+常用元器件3D模型)
  2. 使用Xcode的Organizer监控线上用户 App 的使用情况
  3. 运行时服务(二)、warnings模块
  4. 鲁大师2022牛角尖颁奖盛典落幕,年度最强产品揭晓!
  5. 命令式和声明式,哪个才是你的菜
  6. KDD CUP 2022 风能预测赛题冠军方案分享
  7. 大学慕课MOOC设计一个简单的计算工具
  8. Innovus基础命令:createPlaceBlockage
  9. 体制内干部职务职级及领导干部排序对应关系大全
  10. [数据结构]基于二叉树的家谱系统