android定位到市
<!--定位权限--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
// 请求结果,返回一个map ,其中 key 为权限名称,value 为是否权限是否赋予
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { it -> //通过的权限val grantedList = it.filterValues { it }.mapNotNull { it.key } //是否所有权限都通过val allGranted = grantedList.size == it.sizeif(!allGranted) "请同意所需权限!".showShortToast() else location()}.launch(arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION))
/*** 定位获取当前城市*/private fun location() {val locationManager = context?.getSystemService(Context.LOCATION_SERVICE) as LocationManagervar providerName = ""val providerList = locationManager.getProviders(true)providerName = when {providerList.contains(LocationManager.NETWORK_PROVIDER) -> {LocationManager.NETWORK_PROVIDER}providerList.contains(LocationManager.GPS_PROVIDER) -> {LocationManager.GPS_PROVIDER}else -> {"provider 获取失败".showShortToast()return}}val location = if(context?.let { ActivityCompat.checkSelfPermission(it, Manifest.permission.ACCESS_FINE_LOCATION) } == PackageManager.PERMISSION_GRANTED && context?.let { ActivityCompat.checkSelfPermission(it, Manifest.permission.ACCESS_COARSE_LOCATION) } == PackageManager.PERMISSION_GRANTED) {locationManager.getLastKnownLocation(providerName)} else nullif(location != null) {val longitude : Double = location.longitude // 经度val latitude : Double = location.latitude // 纬度// 因为这里 Geocoder对象的 getFromLocation 方法,源码说明中建议在工作线程执行 getFromLocation方法Thread {try {val geocoder = Geocoder(context, Locale.getDefault())val result = geocoder.getFromLocation(latitude, longitude, 1)[0].locality//result="北京市"activity?.runOnUiThread {viewModel.tvAddress.set(result)}} catch(e : Exception) {e.printStackTrace()}}.start()} else "定位失败".loge()}
android定位到市相关推荐
- Android 定位不依赖三方sdk
@Android 定位不依赖三方sdk 申请定位权限 <uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion=& ...
- android 定位的几种方式介绍
[地理位置] android 定位的几种方式介绍 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络 ...
- android 定位服务 耗电吗,关于Android的定位服务
今天因为工作须要,把以前编写的一个GPS测试法度榜样拿出来从新修改了一下.这个法度榜样说起来竽暌剐些汗青了,是我11年编写的,那时刻学了Android开辟没多久,算是一个实验性的作品.如今工作须要,从 ...
- 定位 android8.1.0,8.1.2 实现Android定位(2)
8.1.2 实现Android定位(2) (3)实现定位管理器 可以使用Context.getSystemService()方法实现定位管理器功能,并传入Context.LOCATION_ SERV ...
- android 定位 广播,android - 如何触发广播接收器在GPS开启/关闭? - SO中文参考 - www.soinside.com...
如何触发广播接收器在GPS开启/关闭? 问题描述 投票:35回答:5 public class BootReceiver extends BroadcastReceiver { @Override p ...
- android 各版本市占率,Android各版本市占率:果冻豆遥遥领先
近日,谷歌公布了最新Android系统各版本的市场占有率.虽说已发布两年之久且推出三个版本的果冻豆系统出现了小幅下滑,但60.8%的市占率依然遥遥领先其它各版本. Android各版本市占率:果冻豆遥 ...
- 利用百度地图Android定位SDK获取经纬度
环境的搭建(参考上一次的文章) 百度地图Android定位SDK的使用 2.在Android studio里设计程序来获取经纬度 界面布局activity_main.xml文件的源代码: <?x ...
- 基于百度地图实现Android定位功能实现(详解+教程)
基于百度地图实现Android定位功能实现(详解+教程) 1.初始化 (一)获取到SHA1 (1)找到View中的Tool Windows并打开Terminal (2)找到你的jdk的bin目录,小编 ...
- Android定位功能(二)
在前文Android定位功能(一)中,已经大致介绍了一下在Android平台中,和定位功能相关的类,并举例获取了位置信息.但是前文是基于Criteria定制了一个标准,通过getBestProvide ...
最新文章
- 基于C++Opencv的傅里叶变换代码
- Spring Cloud + Spring Boot + Mybatis + shiro + RestFul + 微服务
- android图片加载库Glide
- python bind_Python bind-允许同时按下多个键
- 关于 C 的 arithmetic conversion (进行 算术运算 时的 强制转换规则)
- HDU-1863-畅通工程(并查集)
- lock和synchronized的区别
- 一步步打造一个移动端手势库
- 炸裂!手摸手教你如何吃透一个 Java 项目,yyds
- 良田高拍仪集成WEB说明
- QA智能问答(QQ匹配)
- 我用 Python 分析1585家电商车厘子销售数据,发现这些秘密
- 读书笔记:技术的本质-技术是什么,它是如何进化的 (布莱恩•阿瑟)
- python爬虫网易云音乐评论最多的歌_Python爬虫44万条数据揭秘:如何成为网易云音乐评论区的网红段子手?...
- 论混合软件架构的设计
- HBuilderX连接不上海马玩模拟器
- Linux 提权总结
- 复旦大学和吉大计算机考研选哪个,复旦综合实力强,但这个学科比不上吉大,考生该怎么报考...
- C#网络爬虫(获取需要登录的网站数据)
- OPenGL--Transform feedback示例解析