通过Android的原生api获取经纬度;

一些文章都是通过mLocationManager.getProviders,getLastKnownLocation来获取的,但是在一些手机上总是为空。

例如:在一些手机Android 5.0(api21 联想手机)上getLastKnownLocation获取总为空。

可以通过getBestProvider来获取provider然后通过getLastKnownLocation获取得到经纬度。

private Location getLastKnownLocation() {

//获取地理位置管理器

LocationManager mLocationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED

&& ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

// TODO:去请求权限后再获取

return null;

}

List providers = mLocationManager.getProviders(true);

Location bestLocation = null;

for (String provider : providers) {

Location l = mLocationManager.getLastKnownLocation(provider);

if (l == null) {

continue;

}

if (bestLocation == null || l.getAccuracy() < bestLocation.getAccuracy()) {

bestLocation = l;

}

}

// 在一些手机5.0(api21)获取为空后,采用下面去兼容获取。

if (bestLocation==null){

Criteria criteria = new Criteria();

criteria.setAccuracy(Criteria.ACCURACY_COARSE);

criteria.setAltitudeRequired(false);

criteria.setBearingRequired(false);

criteria.setCostAllowed(true);

criteria.setPowerRequirement(Criteria.POWER_LOW);

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

if (!TextUtils.isEmpty(provider)){

bestLocation = mLocationManager.getLastKnownLocation(provider);

}

}

return bestLocation;

}

// 使用

Location location = getLastKnownLocation();

LogUtils.d(TAG, "有位置权限-纬度:" + location.getLatitude() + " 经度:" + location.getLongitude());

android根据经纬度获取位置,Android获取经纬度相关推荐

  1. Android 获取位置信息(经纬度)(附代码)

    获取位置信息主要通过GPS和网络位置两种方法,优先级还是GPS,有点就不多说了,下面说一下我做的方法及附代码,有疑问可在下方留言. 思路便是GPS优先,但在GPS信号弱的情况下采取拿网络位置来弥补的方 ...

  2. android自动获取位置,Android中获取当前位置信息

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

  3. 百度定位实时获取位置android,通过百度定位sdk获取实时位置

    之前有一片关于基站定位的文章,当时的测试环境是小米+移动,比较顺利. 但在实际运用中就出现问题了-联通和电信的号完全没办法定位! 最好的解决方法就是用第三方sdk来定位了. 百度的定位sdk还是很不错 ...

  4. android仿微信发送位置,Android仿微信发送位置-百度地图

    [实例简介] [实例截图] [核心代码] package com.chenxuxu.baiduwechatposition; import android.app.Activity; import a ...

  5. android软件查找号码位置,如何在Android中通过GPS获取位置时获取卫星名称或号码?...

    locationManager.getGpsStatus(null).getSatellites()(调用者可以传入GpsStatus对象以使用最新状态信息进行设置,也可以传递null以创建新的Gps ...

  6. android linux应用安装位置,Android中App安装位置详解

    Android应用可以安装在本机自带存储,同时也可以安装到外部存储(SD卡).自从API 8后也就是Android2.2后,我们能使APK安装到外部存储上.这是一个可选的特性,在工程的manifest ...

  7. android 动画后的位置,Android:Comp之后会重置动画位置

    Android:Comp之后会重置动画位置 我正在使用xml定义的动画将视图滑出屏幕. 问题是,动画完成后,它将立即重置为其原始位置. 我需要知道如何解决这个问题. 这是xml: 这是我用来调用它的J ...

  8. android toast怎么改变位置,Android 更改 Toast 的默认位置方法

    Android中Toast的默认位置在屏幕靠近底部的位置,这个默认位置有时候并不合适.比如页面上内容较少时,内容一般集中在屏幕上半部分,用户的注意力也集中在屏幕上半部分,默认位置的Toast用户可能没 ...

  9. android layout后还原位置,Android图片框架photoview如何记住所有状态并还原,包括缩放度,缩放后的移动的距离等等...

    Android图片框架photoview如何记住状态并还原,包括缩放度,缩放后的移动的距离等等,尝试了好多方法都没有作用. private void generateImages() { for (i ...

  10. android 置顶窗口位置,Android 滑动悬浮置顶指南

    我自己的xml代码,加上一些理解后的注释 xmlns:tools="http://schemas.android.com/tools" xmlns:app="http:/ ...

最新文章

  1. 从HelloWorld看Knative Serving代码实现
  2. Java vararg(动态参数)的应用
  3. 【设计模式】原型模式 ( 浅拷贝 | 深拷贝 | 原型与单例冲突 | 禁用 final )
  4. 中科院教授:科技界已几乎沦为名利场...
  5. 02022_System类的方法练习
  6. 大连市2011年初中毕业升学考试试测(一)数 学
  7. Windows Azure Cloud Service (25) 使用Startup注册COM组件(下)
  8. android 多次点击事件,Android按钮onclick事件在多次单击后激发
  9. Minitab散点图技巧
  10. Go语言web开发学习
  11. Hadoop实战第2版 - 电子书下载(高清版PDF格式+EPUB格式)
  12. 神棍节献礼之——TJU1111 MPI Maelstrom(最短路)
  13. 什么是数据分层,数据分层的作用!
  14. java 首字母大写方法
  15. Web前端开发是做什么的?学Web前端有前途吗?
  16. 改计算机名后ansys打不开,更改计算机名后 Ansys重新注册的简单办法 20140611.pdf
  17. springboot 使用熔断器
  18. Clickhouse副本与分片
  19. 心理软件测试自学,软件测试的心理定势
  20. Java html转图片

热门文章

  1. python实现动态桌面壁纸(精简)
  2. 双引号后面要加句号吗_双引号和句号的位置
  3. python中文件分类_利用Python将文件进行分类整理
  4. Nginx配置项调优
  5. python drop用法_Python drop方法删除列之inplace参数实例
  6. 如何升级maven版本
  7. iOS友盟社会化分享完全攻略
  8. am解调matlab程序,AM调制解调的matlab仿真
  9. Java多线程系列--【JUC锁05】-非公平锁
  10. 计算机网络——透明网桥算法