直接上代码再说明一下,有时一直获取<unknown ssid>的问题,

fun startWifiListener(){if(isRunningWifiChangeListener){return}isRunningWifiChangeListener = trueif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { //android12以上监听修改wifival request = NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build()val connectivityManager = this.applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManagerval networkCallback = object : ConnectivityManager.NetworkCallback(FLAG_INCLUDE_LOCATION_INFO) {override fun onCapabilitiesChanged(network: Network,networkCapabilities: NetworkCapabilities) {val wifiInfo = networkCapabilities.transportInfo as WifiInfoval ssid = WifiSupport.getWifiName(wifiInfo.ssid)Log.e(TAG,"initListener Changed ssid: ${ssid}")// android13 ssid 经常是<unknow ssid>if (BeehiveContact.BEEHIVE_HOTSPOT == ssid) {//wifi连接到指定名称后的操作 dosomething()isRunningWifiChangeListener = false}super.onCapabilitiesChanged(network, networkCapabilities)connectivityManager.unregisterNetworkCallback(this)}}doAsync {while (isRunningWifiChangeListener) {connectivityManager.registerNetworkCallback(request, networkCallback)Thread.sleep(10000)}}}else { //android12以下定时获取当前wifi信息doAsync{while (isRunningWifiChangeListener){var ssid = WifiSupport.getConnectionInfo(this@RestartBeehiveActivity2).ssidssid = WifiSupport.getWifiName(ssid)Log.e(TAG, "initListener while: ${ssid}" )if(BeehiveContact.BEEHIVE_HOTSPOT == ssid){uiThread {//wifi连接到指定名称后的操作 dosomething()}isRunningWifiChangeListener = false}else {Thread.sleep(10000)}}}}}
/*** Build.VERSION_CODES.S以前*/fun getConnectionInfo(context: Context): WifiInfo{val wifimanager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManagerreturn wifimanager.connectionInfo}
/*** 从跳转页面,返回结果,监听*/private val requestDataLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {mContext?.let {(it as RestartBeehiveActivity2).startWifiListener()}}

android12以前用,wifimanager.getConnectionInfo(), android12以后用注册wifi变换的监听,但是有两个问题会返回<unknown ssid>

1、没有使用FLAG_INCLUDE_LOCATION_INFO会获取不到名称,一定要加上,如上面代码ConnectivityManager.NetworkCallback(FLAG_INCLUDE_LOCATION_INFO)。

2、如果在修改wifi时,app退到后台,此时监听会生效,但是名称是<unknown ssid>,所以在需要app退到后台这种情况下,可以在返回app后再注册监听,这里返回当前wifi信息名称就对了。

android获取wifi名称相关推荐

  1. Android获取WiFi名称/路由器AP地址总结

    前言 谷歌有一点点的蛋疼,没想到定位也需要加上版本的判断了,再此总结下定位权限以及WiFi AP SSID的获取. 安卓9.0定位权限 安卓系统在9.0之后如果不开启手机的GPS服务功能,应用即使已经 ...

  2. Android Studio WiFi 之 获取 WiFi 名称、IP、Mac

    Android 获取连接的WIFI 的一些数据(后期封装成aar 包给Unity 调用) 封装成AAR包,获取 Android 7.0 以上的 手机 mac 地址 一.Android 代码 impor ...

  3. android 获取wifi型号,android 获取连接WiFi的名称

    释放双眼,带上耳机,听听看~! 今天,简单讲讲如何获取连接的WiFi的名称. 首先AndroidMainfest.xml文件中添加权限: 然后直接获取WiFi名称 WifiManager wifiMg ...

  4. 关于Android 8.0/9.0 之后获取wifi名称为空的解决方法

    今天连接硬件设备的时候,需要用到wifi名和密码来进行绑定配对.在获取wifi名的时候,意外发现为空.于是就开始找寻解决方案. 后来找到这么一篇文章: Android获取WIFI 的ssid 方法适配 ...

  5. flutter 获取wifi名称以及Android10获取不到wifi名称<unknown ssid>

    插件 我使用的是wifi_iot这个插件,版本是0.2.2,flutter版本是1.20.0. dependencies:flutter:sdk: flutterwifi_iot: ^0.2.2 获取 ...

  6. 【unknow ssid】两种办法获取WIFI名称99%可解决

    复工第一天,今天早上客户反映某品牌手机Android10以上无法获取wifi名称,我寻思不就定位权限嘛,一看权限都有的,就是获取不到wifi名称. 原因: 不知道 解决方案:写了两个方法,如果方法1无 ...

  7. android 获取wifi信号强度,获取wifi当前手机连接的wifi信息以及信号强度

    1.获得WifiManager对象WifiManager wm = (WifiManager) getApplicationContext().getSystemService(Context.WIF ...

  8. android 获取wifi 信号质量,信号强度

    android 获取wifi 信号质量 编辑 | 删除 int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);即信号强度 ...

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

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

最新文章

  1. QQ提示应用程序并行配置不正确,绿色版QQ不能运行解决方法
  2. notepad python_Notepad++配置Python开发环境
  3. 计算机流水线作业员做什么,电子厂普通作业员的工作流程是什么
  4. 瑞银报告 | 美国银行业科技支出:凡有的,还要加给他,叫他有余...
  5. git21天打卡Day1-linux下安装git
  6. w10 Sentinel的下载和安装
  7. 诺奖这么多,经济还崩溃了?
  8. 1.3 收敛数列的性质
  9. d3力导向图增加节点_在D3力导向图中突出显示所选节点,其链接及其子节点
  10. python重连wifi(windows电脑断网)
  11. 计算机显示正常 但打印出来乱码,打印出乱码字体怎么办
  12. SkyWalking 概念与设计总览
  13. java.lang.IllegalStateException: Failed to convert message:‘‘ to outbound message.
  14. 阈的粤语发音_新编粤语读音字典 - 粤语 | Cantonese | 白话 - 声同小语种论坛 - Powered by phpwind...
  15. (PS教程)01-用PS给证件照排版
  16. 怎么在WPS表格中绘制二次函数曲线图
  17. 用Mahout构建职位推荐引擎
  18. 发现新鲜的画法,文艺极简水彩线描简笔画植物:草叶集(一)
  19. 51单片机Proteus仿真
  20. vs 2017 community中文版下载地址

热门文章

  1. 数字字符串转化为数字
  2. ❤️vue 上传图片预览的方法
  3. 华为的型号命名规则_掌握数控刀片/刀头/刀粒/刀具型号命名规则,你就是半个专家了...
  4. Linux SQLPLUS
  5. logging模块学习
  6. 【计算机毕业设计】JAVA SSM同城物流配送系统
  7. 30 张Java 的思维导图,全面梳理构建 Java 的知识体系
  8. Error:java:JDK isn‘t specified for module
  9. 好小三2103 520谭之一:BCBC“数学的故事”笑谭
  10. EOJ 139 旅游规划 最短路径算法