获取安卓位置信息

2023-05-16

别忘了添加权限:

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

代码:

 //获取地理位置管理器
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        //获取所有可用的位置提供器
        List<String> providers = locationManager.getProviders(true);
        if(providers.contains(LocationManager.GPS_PROVIDER)){
            //如果是GPS
            locationProvider = LocationManager.GPS_PROVIDER;
        }else if(providers.contains(LocationManager.NETWORK_PROVIDER)){
            //如果是Network
            locationProvider = LocationManager.NETWORK_PROVIDER;
        }else{
            Toast.makeText(this, "没有可用的位置提供器", Toast.LENGTH_SHORT).show();
            return ;
        }
 //获取Location
                    Location location = locationManager.getLastKnownLocation(locationProvider);
                    if(location!=null){
                        //不为空,显示地理位置经纬度
                        String s = Util.updateWithNewLocation(mContext, location);
                        L.d(TAG,"我是地理位置-==="+s);
                        cityString.setText(s);
                    }
                    //监视地理位置变化
                    locationManager.requestLocationUpdates(locationProvider, 3000, 1, locationListener);


 /**
     * LocationListern监听器
     * 参数:地理位置提供器、监听位置变化的时间间隔、位置变化的距离间隔、LocationListener监听器
     */

    LocationListener locationListener =  new LocationListener() {

        @Override
        public void onStatusChanged(String provider, int status, Bundle arg2) {

        }

        @Override
        public void onProviderEnabled(String provider) {

        }

        @Override
        public void onProviderDisabled(String provider) {

        }

        @Override
        public void onLocationChanged(Location location) {
            //如果位置发生变化,重新显示
            String s = Util.updateWithNewLocation(mContext, location);
            L.d(TAG,"我是地理位置-==="+s);
            cityString.setText(s);

        }
    };
界面销毁时候别玩器取消监听
 @Override
    protected void onDestroy() {
        super.onDestroy();
        if(locationManager!=null){
            //移除监听器
            locationManager.removeUpdates(locationListener);
        }
    }
根据location获取地理信息:

public  static String updateWithNewLocation(Context context,Location location) {
        String coordinate;
        String addressStr = "no address \n";

        if (location != null) {
            double lat = location.getLatitude();
            double lng = location.getLongitude();
            coordinate = "Latitude:" + lat + "\nLongitude:" + lng;
            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            Geocoder geocoder = new Geocoder(context, Locale.getDefault());
            try {
                List<Address> addresses = geocoder.getFromLocation(latitude,
                        longitude, 1);
                StringBuilder sb = new StringBuilder();
                if (addresses.size() > 0) {
                    Address address = addresses.get(0);
                    for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
                        sb.append(address.getAddressLine(i)).append("\n");
                    }
                    sb.append(address.getLocality()).append("\n");
//                    sb.append(address.getLocality()).append("\n");
//                    sb.append(address.getCountryName());
                    addressStr = sb.toString();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            coordinate = "no coordinate!\n";
        }
        return coordinate + "\n"
                + addressStr;

    }



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取安卓位置信息 的相关文章

  • 使用阿里云的函数计算来实现OSS资源的打包下载

    文档地址 xff1a 如何使用函数计算将多个文件打包下载到本地 对象存储 OSS 阿里云 计算函数可以通过对外公网域名进行访问 xff1a 计算函数的参数有几个 xff1a bucket xff1a 使用的OSS的bucket xff0c
  • linux系统上nodejs 报错:node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27‘ not found

    原因 xff1a 因为当前系统不支持GLIBC 2 27 xff0c 而且node的版本过高 xff0c 但是后来降低了版本还是报这个错误 xff0c 后来发现低版本的软链接在 usr bin xff0c 而高版本的软链接在 usr loc
  • 使用nvm控制nodejs版本

    原因 xff1a 由于项目需要用到两个版本的nodejs xff0c 如果只是一个版本的nodejs的话 xff0c 其中一个项目就会报错 xff0c 所以需要用到nvm进行nodejs版本控制 xff0c 使用不同版本的nodejs来进行
  • opencv 实战案例 (一)

    目录 xff1a 1 用 Canny 算子检测图像轮廓提取车道线任务 xff08 Canny xff09 2 用 findContours 发现硬币轮廓任务 Canny 43 findContours 3 用概率霍夫变换检测车道线任务 Ca
  • 企业微信-构造网页授权链接实现登录

    文档地址 xff1a 构造网页授权链接 接口文档 企业微信开发者中心 注意 xff1a 1 redirect uri xff1a 回调链接地址 xff0c 需要使用urlencode对链接进行处理 2 scope xff1a 如果需要获取成
  • dpkg: 处理软件包 xxx (--configure)时出错解决方法

    问题 xff1a dpkg 处理软件包 libicu dev configure 时出错 xff1a 依赖关系问题 仍未被配置 dpkg 依赖关系问题使得 libxml2 dev amd64 的配置工作不能继续 xff1a libxml2
  • oracle 删除表以及回复数据

    找回删除的表 select object name original name partition name type ts name createtime droptime from recyclebin WHERE original n
  • 银行卡信息查询

    银行卡bin 银行卡信息 请移步到github xff1a https github com burningmyself bank
  • ProcessDefinition是干这个用的

    流程定义ProcessDefinition是对业务过程的完整描述 xff0c 例如请假流程定义 报销流程定义等 流程定义的管理包括部署流程定义 查询流程定义 查看流程定义图和删除流程定义 1 部署流程定义 使用RepositoryServi
  • 截取字符串的三种方法

    众所周知 xff0c java提供了很多字符串截取的方式 下面就来看看大致有几种 span class hljs number 1 span span class hljs built in split span 43 正则表达式来进行截取
  • Iterator主要有三个方法:hasNext()、next()、remove()详解

    一 Iterator的API 关于Iterator主要有三个方法 xff1a hasNext next remove hasNext 没有指针下移操作 xff0c 只是判断是否存在下一个元素 next xff1a 指针下移 xff0c 返回
  • @ModelAttribute用法详解

    转载于 xff1a https blog csdn net harry zh wang article details 57329613 之前项目中并自己并没有怎么使用到过 64 ModelAttribute这个注解 xff0c 接手一个老
  • mysql除法运算保留小数的用法

    参照 xff1a https www cnblogs com owenma p 7097602 html 在工作中会遇到计算小数而且需要显现出小数末尾的0 xff0c 我们会用到DECIMAL这个函数 xff0c 这是一个函数非常强悍 xf
  • IDEA—点击文件代码与目录自动同步对应

    关注微信公众号 xff1a CodingTechWork xff0c 一起学习进步 引言 在使用IDEA的时候 xff0c 我们Ctrl 43 Shift 43 F搜索文件后 xff0c 总是要慢慢找文件在哪个包路径下 如查看路径顶端 xf
  • springboot打包完成之后无法读取到resources下的资源文件

    File privateKeyFile 61 ResourceUtils getFile classpath wx pfx PrivateKey privateKey 61 getPrivateKey privateKeyFile priv
  • 接口签名实现拦截的两种方式

    1 采用spring的aop思想进行拦截 需要自定义注解 xff0c 然后定义切面 xff08 五大类 xff09 然后在定义 xff0c 可以获取所有的参数 2 拦截器的实现方式 自定义拦截器 xff0c 然后对拦截器进行配置即可 配置
  • Java程序员利器,lombok神搭档:delombok插件

    Lombok是一款非常实用Java工具 xff0c 它可以帮助开发人员减少样板代码 xff0c 使开发人员专注业务逻辑 xff0c 在Java界几乎无人不知 但也有一些明显的缺点 xff0c 例如 xff1a 对插件强依赖 xff0c 在团
  • C++bind函数

    1 基本概念 bind函数定义在头文件 functional 中 可以将 bind 函数看作一个通用的函数适配器 xff0c 它接受一个可调用对象 xff0c 生成一个新的可调用对象来 适应 原对象的参数列表 C 43 43 Primer
  • C++值的分类 —— 摘自维基百科

    在C 43 43 11 xff0c 对于值的分类 xff0c 要考虑标识 xff08 identity xff09 与可移动性 xff08 movability xff09 xff0c 二者的组合产生了五种分类 xff1a 基础值类型 左值

随机推荐

  • pytorch 深度学习入门代码 (一)线性回归代码实现

    34 34 34 一维线性回归代码实现 34 34 34 import torch from torch autograd import Variable import matplotlib pyplot as plt import tor
  • pytorch 深度学习入门代码 (三)Logistic 回归代码实现

    span class hljs string 34 34 34 Logistic 回归的代码实现 34 34 34 span span class hljs keyword import span matplotlib pyplot spa
  • pytorch 深度学习入门代码 (四)多层全连接神经网络实现 MNIST 手写数字分类

    net py span class hljs keyword import span torch nn span class hljs keyword as span nn span class hljs class span class
  • CentOs云服务器部署项目全流程

    目录 序工具准备putty安装及使用pscp安装及使用 环境安装及配置serverjre 或jdk 安装及配置mysql安装及配置Tomcat 安装及配置 项目部署上传war包至服务器tomcat无法启动常见问题去除端口号和目录名访问项目项
  • 快速上手MybatisPlus

    首先附上mybatis plus官方文档 本篇参考官方文档记录spring mvc项目接入mybatis plus的全流程及一些问题的解决方案 xff0c 建议优先参考官方文档 开始之前 xff0c 假设数据库已建好并已能正常访问 依赖配置
  • FTP工具类一

    public class FTPClientUtils public static String FTPCONFIG 61 34 config ftpConfig properties 34 private static String LO
  • 在 SourceTree 中使用 git rebase (变基)

    原始状态 假如我们要在 master 分支上进行开发 xff0c 在远端的 master 分支上右键 xff0c 检出 一个自己的开发分支 dev 1 做一些开发 xff0c 提交到本地 xff0c 不要推送 xff08 push xff0
  • 云服务器搭建部署全流程

    本篇记录在centos7 3上部署web项目的全流程及一些问题的解决方案 工具准备 putty安装及使用 PuTTY可用来在windows上连接linux服务器 xff0c 可去PuTTY官网下载安装如果不想每次登录都输入密码 xff0c
  • 三种获取字节码对象的方式及区别

    方式一 xff1a 对象 getClass 方法是 根对象Object的方法 是其他类继承Object的getClass方法 方式二 xff1a 类名 class xff0c 你可以理解为字节码本身就是静态的 xff0c 类加载的时字节码就
  • 关于接口与Object 类的关系

    看到这个标题 xff0c 你或许就会想好自己的那份答案 但事实上这个确实没有答案 xff0c 至少没官方证明它们之间的基友关系 看法一 xff1a 因为老师说 xff0c 你可以把接口看作是特殊的类 xff0c 所以不假思索的就认为接口也
  • 单词博弈Java实现(借鉴“miss若尘”博客中写的解题思路)

    单词博弈Java实现 xff0c 已经通过庞果网的用例测试 代码如下 import java util HashMap public class WordGameFinalTest public static int who String
  • mysql安装时的粗心错误:last error unable to update security settings. access denied for user 'root' @ 'localh

    来自 梦想家haima 39 s blog gt http blog dreamwe cn 这个报错出现在mysql最后 当你看到mysql的最后一步需要设置密码可能你开心得很 Mysql就快安装好了 赶快输入三行密码都是root 结果报下
  • @SuppressWarnings

    简介 xff1a java lang SuppressWarnings是J2SE 5 0中标准的Annotation之一 可以标注在类 字段 方法 参数 构造方法 xff0c 以及局部变量上 作用 xff1a 告诉编译器忽略指定的警告 xf
  • 欢迎使用CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • Linux之强大的awk

    来自 梦想家 Haima s blog gt http blog dreamwe cn awk简介 awk是Linux中的一个命令 xff0c 用来做文本处理与分析 xff0c 功能简单强悍 xff0c 同时它也是一门编程语言 awk处理文
  • 手机抓包charles使用

    使用的是charles window 之前使过fiddler但是感觉并没有charles好用以及一目了然 链接 https pan baidu com s 1NMNXa8M4niLObQKIsCNL3A 提取码 2wsa 安装包可以通过连接
  • 安卓Tinker热更新接入踩坑(minSdkVersion 21)

    哎哟 xff0c 这个坑啊 我项目采用的是ARouter 43 Tinker 我接入的是tinkerpathchttp www tinkerpatch com Docs intro按照文档对接 xff0c 我采用的是reflectAppli
  • Android 解压和重新打包system.img

    开始我们的工作前 xff0c 请记住 xff0c Linux一定要学会用file命令分析文件类型 xff0c 这样才好入手 xff0c 否则错了都不知道怎么回事 xff01 xff01 xff01 1 解压system img 先用file
  • Jetpack系列学习笔记整理一 之LifeCycles

    学习最好的途径就是官网和github Demo xff0c 先放链接 xff0c 想看自行跳转 xff1a 官网 xff1a https developer android com topic libraries architecture
  • 获取安卓位置信息

    别忘了添加权限 xff1a lt uses permission android name 61 34 android permission INTERNET 34 gt lt uses permission android name 61