一、添加权限

    <!--使用网络--><uses-permission android:name="android.permission.INTERNET" /><!--网络状态--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--wifi状态权限--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--位置信息--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!--如果是安卓10.0,需要后台获取连接的wifi名称则添加进程获取位置信息权限 --><uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /><!--android 10.0使用wifi api新添加的权限--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

二、申请权限

申请权限框架较多,本人使用的 RxPermissions

android8.0以上需要开启位置信息,如图

android10.0截图

android9.0以上需要申请定位权限

android10.0需要申请新添加的隐私权限ACCESS_FINE_LOCATION详情见android官方10.0重大隐私权变更,如果还需要后台获取或者使用wifi api则还需要申请后台使用定位权限ACCESS_BACKGROUND_LOCATION

三、申请权限代码示例

    /*** 判断是否获取到了定位权限,获取wifi信息需要*/private fun rxPermissions() {//获取必要权限if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {RxPermissionsUtlis(this,RxPermissions(this),getString(R.string.permissions14),object : RxPermissionsUtlis.PermissionCallbacks {override fun onPermissionsGranted() {if (!LocationUtils.isGpsEnabled()) {LogUtils.e(TAG, "没有开启GPS定位")openGpsSettings()} else {//获取连接的wifi名称getConnectWifiSsid()}}override fun onPermissionsDenied() {finish()}},Manifest.permission.ACCESS_BACKGROUND_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION)} else {RxPermissionsUtlis(this,RxPermissions(this),getString(R.string.permissions1),object : RxPermissionsUtlis.PermissionCallbacks {override fun onPermissionsGranted() {//先判断Android系统,9.0以上除了需要定位权限还需要开启GPS才能获取wifi名字if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {if (!LocationUtils.isGpsEnabled()) {LogUtils.e(TAG, "没有开启GPS定位")openGpsSettings()}}}override fun onPermissionsDenied() {finish()}},Manifest.permission.ACCESS_COARSE_LOCATION)}}/*** 获取连接wifi的ssid** @return*/private fun getConnectWifiSsid(): String {val wifiManager =applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManagerval wifiInfo = wifiManager.connectionInfoLogUtils.e(TAG, "wifiInfo==$wifiInfo")LogUtils.e(TAG, "SSID===${wifiInfo.ssid}")return wifiInfo.ssid}/***  打开Gps设置界面*/private fun openGpsSettings() {val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))}

Android8.0 9.0 10.0获取wifi名字问题相关推荐

  1. iOS开发:获取WiFi名称(解决iOS12.0以上系统不能正常获取WiFi名称的方法)

    前段时间在开发过程中遇到一个问题,就是之前设置的获取手机连接WiFi名称的方法不起作用了,后来经查发现是因为新系统需要申请开启相对应的权限才能获取到手机连接的WiFi名称等信息,本章就来讲一下iOS1 ...

  2. Finereport 9.0升级到10.0工具下载[9-10升级工具]

    QQ192374926 1. 描述 现提供一个独立的辅助升级程序,可以将 9.0 的 Web 工程升级到 10.0 工程,包括 JAR 包.各类配置文件.FineDB 数据表等的兼容升级. 注:支持 ...

  3. pytorch环境安装(配置:CUDA11.1+CUDNN11.1+torch.9.0+cu111+torchvision0.10.0+cu111+torchaudio==0.9.0)

    文章目录 1.下载CUDA 2 .下载CUDNN 3.CUDA安装 4.安装CUDNN 5.下载pytorch 6.安装pytorch 本文的显卡是 NVIDIA GeForce RTX 3060 L ...

  4. spark集群环境下Lost task 0.0 in stage 10.0 (TID 17, 10.28.23.202): java.io.FileNotFoundException

    spark从当前目录加载文件报错,Lost task 0.0 in stage 10.0 (TID 17, 10.28.23.202): java.io.FileNotFoundException,明 ...

  5. ubuntu18.04安装pytorch1.9.0和torchvision0.10.0

    一.利用anaconda创建自己的虚拟环境: 创建新的环境,命令为:conda create -n 虚拟环境名称 python版本 图中所示,创建的虚拟环境名称为pytorch1.9,python版本 ...

  6. 原生android 播放语音、获取wifi名字

    最近在研究android获取wifi名字.想实现一个类似链接wifi后,APP里播放下,链接这个wifi地方的信息.比如,已连接wifi,APP就播放语音啊天气啊.或者欢迎使用本wifi等等. 这里记 ...

  7. android8.0扫描wifi,解决8.0/9.0获取Wifi名字为空 WifiInfo.getSSID为空的情况

    最近遇到一个奇怪的bug,部分手机上获取wifi的名字,通过WifiManager.getConnectionInfo().getSSID()为"unknown ssid",调试查 ...

  8. Android应用安装apk版本升级,适配Android 8.0和Android 10.0下载安装,shell命令安装APK

    shell命令安装 /*** 安装apk** @param path apk文件路径*/ public void installAPK(String path) {Log.i(TAG, "i ...

  9. 程序员快放弃 Android 9.0 吧,10.0 正在来的路上!

    本文经授权转自终端研发部(ID:codeGoogler) 目前,美国 Google公司的 AndroidP (安卓9.0),已经正式全面推出有几个多月了.众多手机品牌厂商也都在积极的进行更新适配 An ...

最新文章

  1. Linux操作系统及平台虚拟化技术漫谈
  2. centos 安装 redmine 2.6.0.stable
  3. Hibernate统计表中的条数
  4. 面试题 02.01. 移除重复节点
  5. 系统性能测试--杨建旭
  6. android开发隐藏软键盘,Android开发之完全隐藏软键盘的方法
  7. Vue (响应式原理-模拟-3-Compiler)
  8. Python 多进程
  9. python fetchall()转化为数据框_python 操作mysql数据中fetchone()和fetchall()方式
  10. rewrite伪静态
  11. 失意时,你是怎么救自己的?
  12. 硬盘的老化测试软件,扩容卡检测、扩容U盘检测工具(MyDiskTest)
  13. Trie树(字典树、前缀树) (小白整理)
  14. 数字转换成英语的程序(c++实现)
  15. 转:标准差(Standard Deviation) 和 标准误差(Standard Error)
  16. 基于蓝牙的车载OBD系统
  17. 查询学生的学号、课程号和成绩,并按成绩升序排序
  18. LaTeX插入参考文献
  19. Rhodamine-PEG-NH2,罗丹明-聚乙二醇-氨基的结构式,一文了解RB-PEG-NH2的使用
  20. 仿QQ音乐css布局

热门文章

  1. 这个七夕节,为什么那么多明星没能熬过
  2. linux 端口未 listen,linux – TCP *:hbci(LISTEN) – hbci是什么意思?
  3. 考研进度记录表(2021.6-2021.11)
  4. 解决阿里云服务器访问端口不通问题
  5. JTAG和ULINK、JLINK、ST-LINK
  6. 【数据分析】2022年北京交通大学计算机学院学术型博士录取数据分析
  7. AMASLAB-EPIC-KBS工控机Ubuntu基础环境配置
  8. Anaconda只有文件夹没有导航图标
  9. 人工智能Python语音识别练习
  10. php redis 签到,如何利用 Redis 快速实现签到统计功能