Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android利用自带的位置服务,获取当前位置信息

Android利用自带的位置服务,获取当前位置信息

作者头像
饮水思源为名
发布于 2019-11-04 08:28:12
发布于 2019-11-04 08:28:12
3.4K00
代码可运行
举报
文章被收录于专栏:Android小菜鸡Android小菜鸡
运行总次数:0
代码可运行

笔者项目里,需要获取用户的当前位置信息,因为没有接地图SDK,打算用原生自带的位置服务去做。操作了一下,踩了几个大坑,总算是幸不辱命。这里做个记录,顺便分享给大家。

代码与讲解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 初始化地理位置
     */
    @SuppressLint("MissingPermission")
    fun initLocation() {
        Thread(Runnable {
            val serviceString = Context.LOCATION_SERVICE// 获取的是位置服务
            val locationManager = getSystemService(serviceString) as LocationManager
            val provider = LocationManager.NETWORK_PROVIDER// 指定LocationManager的定位方法
            val location = locationManager.getLastKnownLocation(provider)
            var address = getAddress(location)
            runOnUiThread {
                tvLocation.text = address
            }
        }).start()
    }
    /**
     * 通过经纬度获取位置信息
     */
    private fun getAddress(location: Location?): String {//一定要异步,否则获取不到
        //用来接收位置的详细信息
        var result: List<Address>? = null
        var addressLine = ""
        try {
            if (location != null) {
                val gc = Geocoder(this, Locale.getDefault())
                result = gc.getFromLocation(location.latitude, location.longitude, 1)
                if (result.isNotEmpty()) {
                    try {
                        addressLine = result[0].getAddressLine(0) + result[0].getAddressLine(1)
                    } catch (e: java.lang.Exception) {
                        addressLine = result[0].getAddressLine(0)
                    }
                }
            }
            addressLine=addressLine.replace("null","")
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return addressLine
    }

上面两个方法,就可以实现这个功能了,笔者通过tvLocation.text = address直接将位置信息渲染在界面上。朋友们如果只是想实现功能,代码copy进项目就OK,想要了解细节可以继续往下看。

爬坑指南:

1.initLocation()这个方法,可以看到笔者是放在线程里跑的,一定要这样做,否则拿到经纬度之后,无法通过经纬度获取到位置信息。笔者在这里纠结了许久。 2.在通过经纬度获取位置信息时,获取到的result是个集合,他对你的当前位置做了不同维度的描述,越后面的,描述得越精确。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android获取经纬度
通常情况下到这里我们已经通过Android自带的API获取到了经纬度,但是有的时候会获取不到,或者我们需要获取连续的点位信息,下面我就来写一下如何获取连续的点位信息,同时我们可以通过这种方式来避免获取点位失败的问题。
longzeqiu
2019/08/14
3.1K0
android中几种定位方式详解
目前,移动端大致通过三种方式来进行设备定位:GPS、基站、wifi。本文就详细的讲解一下这几种定位方式和实现方法。
BennuCTech
2021/12/10
7.7K0
android中几种定位方式详解
Android Osmdroid + 天地图 (二)
  上一篇中我们显示了地图,但是还不够,不满足基本的使用情况,本篇中继续进行功能使用上的完善。
晨曦_LLW
2024/11/28
2750
Android Osmdroid + 天地图 (二)
项目需求讨论 - 定位功能小结
我们知道我们的APP有可能需要获取一些地理位置信息。比如定位用户当前的位置,自动选定城市或者区域等。所以这次做个关于定位的一些总结。
青蛙要fly
2018/08/29
9840
项目需求讨论 - 定位功能小结
Android Geocoder(位置解析)
Android中提供GPS定位服务,同时开发者可以对获得的位置信息进行解析,可以获得位置的详细信息。 1.gps定位 在Eclipse中建立android应用程序。android sdk中提供了locationmanager来获得系统提供的定位服务,可以通过gps、network等定位。通过下面的代码能够获取location对象,而通过location可以获得经纬度信息。 1 LocationManager loactionmanager=(LocationManager) getSystemServic
水击三千
2018/02/27
3.2K0
Android GB28181接入端实时位置订阅和上报之-如何获取当前经纬度
我们在做Android平台GB28181的时候,其中实时位置(MobilePosition)订阅和上报这块,涉及到实时经纬度的获取,特别是执法记录、车载系统的那个等场景,几乎就是标配。
音视频牛哥
2022/09/21
7790
LocationManager的简单使用
当在真机上运行时,弹出定位错误信息,则可能是因为没有打开定位权限,需要自己手动打开,运行成功弹出你所在的城市的位置。
全栈程序员站长
2022/07/22
1K0
LocationManager的简单使用
Google Map
上一章介绍了如何使用Android的GPS来获取设备的定位信息,但这种方式得到的定位信息只不过是一些数字的经度、纬度值,如果这些经度、纬度值不能以更加形象、直观的方式显示出来,对于大部分普通用户而言,这些数据几乎没有任何价值。要想让这些经纬度值“派上”用场,就需要用到本章中介绍到的Google Map服务。在本章中我们首先对Google Map进行简单的介绍,然后介绍Android中进行Google Map开发需要的准备工作,最后通过一系列的案例讲解了在Android中进行Google Map开发的方法及技巧。
张哥编程
2024/12/17
2660
Google Map
Android经典实战之如何获取图片的经纬度以及如何根据经纬度获取对应的地点名称
在Android中,可以通过以下步骤获取图片的经纬度信息以及根据这些经纬度信息获取对应的地点名称。这里主要涉及两部分:从图片中提取地理位置信息(经纬度)和通过地理位置信息获取地点名称。
AntDream
2024/08/09
3150
Android经典实战之如何获取图片的经纬度以及如何根据经纬度获取对应的地点名称
Android Google Maps
  在国内你选择的SDK可以是高德、百度、腾讯等,但在国外,你首选肯定是谷歌,因此要进行Google地图的开发你首先要解决下面三个问题
晨曦_LLW
2024/11/28
2460
Android Google Maps
Kotlin入门(32)网络接口访问
手机上的资源毕竟有限,为了获取更丰富的信息,就得到辽阔的互联网大海上冲浪。对于App自身,也要经常与服务器交互,以便获取最新的数据显示到界面上。这个客户端与服务端之间的信息交互,基本使用HTTP协议进行通信,即App访问服务器的HTTP接口来传输数据。HTTP接口调用在Java代码中可不是一个轻松的活,开发者若用最基础的HttpURLConnection来编码的话,至少要考虑以下场景的处理: 1、HTTP的请求方式是什么,是GET还是POST还是PUT还是DELETE? 2、HTTP的连接超时时间是
aqi00
2019/01/18
1.8K0
校园跑腿小程序通过位置获取当前学校
图片底部中,最下面是当前地址,当前地址可以根据逆地址解析获取,上面的是附近学校(通过城市码和地区码对比),在搜索到其他关联的店铺数据
德宏大魔王
2023/08/08
3460
校园跑腿小程序通过位置获取当前学校
腾讯位置服务开发应用-使用教程,案例分享,知识总结
作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
达达前端
2020/12/28
6.5K0
腾讯位置服务开发应用-使用教程,案例分享,知识总结
Arcgis API for Android之GPS定位
先说说写这篇文章的原因吧,在群内讨论的过程中,有人提到了定位的问题,刚好,自己以前在做相关工作的时候做过相关的东西,所以就总结一下,给大家共享出来,由于本人水平有限,bug是在所难免,还望有更高的高人批评指正。废话不多说,直接进入主题。
牛老师讲GIS
2018/10/23
9550
《移动互联网技术》第九章 感知与多媒体: 了解质感设计的基本原则和设计方法
《移动互联网技术》课程是软件工程、电子信息等专业的专业课,主要介绍移动互联网系统及应用开发技术。课程内容主要包括移动互联网概述、无线网络技术、无线定位技术、Android应用开发和移动应用项目实践等五个部分。移动互联网概述主要介绍移动互联网的概况和发展,以及移动计算的特点。无线网络技术部分主要介绍移动通信网络(包括2G/3G/4G/5G技术)、无线传感器网络、Ad hoc网络、各种移动通信协议,以及移动IP技术。无线定位技术部分主要介绍无线定位的基本原理、定位方法、定位业务、数据采集等相关技术。Android应用开发部分主要介绍移动应用的开发环境、应用开发框架和各种功能组件以及常用的开发工具。移动应用项目实践部分主要介绍移动应用开发过程、移动应用客户端开发、以及应用开发实例。 课程的教学培养目标如下: 1.培养学生综合运用多门课程知识以解决工程领域问题的能力,能够理解各种移动通信方法,完成移动定位算法的设计。 2.培养学生移动应用编程能力,能够编写Andorid应用的主要功能模块,并掌握移动应用的开发流程。 3. 培养工程实践能力和创新能力。  通过本课程的学习应达到以下目的: 1.掌握移动互联网的基本概念和原理; 2.掌握移动应用系统的设计原则; 3.掌握Android应用软件的基本编程方法; 4.能正确使用常用的移动应用开发工具和测试工具。
猫头虎
2024/04/08
1550
腾讯位置服务开发应用-使用教程,案例分享,知识总结
作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
腾讯位置服务
2021/07/29
3.1K0
腾讯位置服务开发应用-使用教程,案例分享,知识总结
微信小程序获取位置信息
在用户首次进入某页面(需要地理位置授权)时候,在页面进行onLoad,onShow时候,进行调用wx.getLocation要求用户进行授权;以后每次进入该页面时,通过wx.getSetting接口,返回用户授权具体信息。
程思扬
2022/01/10
2.7K0
微信小程序获取位置信息
腾讯位置服务实现路径规划功能demo
这个腾讯位置服务产品初体验小demo能够实现的基本功能有:实现输入(定位)当前位置及终点位置,在地图上规划出两点之间路线,并显示路线所需的距离及路费,确认行程后通过动画模拟车辆在路线上行驶。
腾讯位置服务
2021/08/04
1.2K0
腾讯位置服务实现路径规划功能demo
微信小程序类快递自动填写收发货地址功能
获取当前位置信息或者某地的行政区划信息或者街道信息,实现类似电商平台填写收货地址功能。
腾讯位置服务
2021/03/26
1.7K0
Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析
问题描述: fang_fang_story 近期做一个扫描附近低功耗蓝牙设备获取到rssi并进行一系列的相对的定位的功能。在开发前期一直使用低版本(Android6.0以下)的手机进行测试,没有任何问题。在运行到Android6.0的手机上后,出了一个问题。 每当扫描到附近ble设备并进行回调时都会报错,根本获取不了扫描的结果,报错如下: D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=5 W/Binder: Caught a
fanfan
2018/01/24
1.7K0
推荐阅读
相关推荐
Android获取经纬度
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验