问题描述:关于连接WiFi失败的原因,在Android开发者平台上说明了对addNetwo这个方法的启用,并且Android Q不支持应用对WiFi进行开关操作。
原因:Android Q 将切断应用对 Wi-Fi 设置的访问权限,防止恶意软件滥用系统功能的访问权限。

针对开关WiFi的解决办法:

startActivity(Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY))

针对连接WiFi的解决办法:
wifiName替换成想要连接的WiFi名称,wifiPassword替换成对应的密码。

f (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {val specifier: NetworkSpecifier = WifiNetworkSpecifier.Builder().setSsidPattern(PatternMatcher(wifiName, PatternMatcher.PATTERN_PREFIX)).setWpa2Passphrase(wifPassword).build()val request = NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).setNetworkSpecifier(specifier).build()val connectivityManager =requireActivity()!!.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManagerval networkCallback: NetworkCallback = object : NetworkCallback() {override fun onAvailable(network: Network) {// do success processing here..when (upOrDown) {"up" -> {intoActivityWithBundle(ActivityHolder.SELECT_PERSONNEL, Bundle().apply {putString("type", "upload")putString("meetingId", meetingId)})}"down" -> {intoActivityWithBundle(ActivityHolder.SELECT_PERSONNEL, Bundle().apply {putString("type", "download")putString("meetingId", meetingId)})}}}override fun onUnavailable() {// do failure processing here..}}connectivityManager.requestNetwork(request, networkCallback)// Release the request when done.// connectivityManager.unregisterNetworkCallback(networkCallback);} else {//小于Android Q的版本val wifiSSID = "\"" + wifiName + "\""val wifiConfiguration = WifiConfiguration().apply {SSID = wifiSSIDpreSharedKey = "\"" + wifPassword + "\""hiddenSSID = trueallowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);allowedProtocols.set(WifiConfiguration.Protocol.RSN)status = WifiConfiguration.Status.ENABLED
//                wepKeys[0] = "\"" +psd+ "\""
//                wepTxKeyIndex = 0
//                allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE)
//                allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40)}val wifiManager = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {requireActivity().getSystemService(WifiManager::class.java)} else {requireActivity().applicationContext.getSystemService(Context.WIFI_SERVICE)?.let {it as WifiManager}}wifiManager?.run {addNetwork(wifiConfiguration)val config=  configuredNetworks.first {it.SSID != null && it.SSID == wifiSSID}disconnect()Log.e("===","==networkId==${config.networkId}")val enableNetwork = enableNetwork(config.networkId, true)Log.e("===","==enableNetwork==$enableNetwork")val b = reconnect()Log.e("==","==reconnect=====$b")}}

参考博客:
https://shoewann0402.github.io/2019/03/20/android-q-beta-enable-and-disable-wifi/
https://www.jb51.net/article/183837.htm
官方:https://developer.android.google.cn/guide/topics/connectivity/wifi-bootstrap#kotlin

Android10连接WiFi的方法相关推荐

  1. linux连接wifi的方法

    Linux 操作系统有很多种连接 WiFi 的方法.这里给出一种常用的方法. 首先,确保你的设备已经安装了 WiFi 驱动程序并且已经成功启动.然后打开终端,输入以下命令: nmcli device ...

  2. win10无线断开无法连接服务器,win10待机wifi断开是怎么回事 win10待机唤醒后无法连接wifi解决方法...

    类型:系统优化大小:1.3M语言:中文 评分:10.0 标签: 立即下载 win10待机wifi断开是怎么回事?win10待机唤醒后无法连接wifi解决方法.很多使用Windows 10系统的朋友反映 ...

  3. 解决Ubuntu中无法连接wifi的方法

    安装完Ubuntu 14.04,为了增加用户体验,还特意装的是双系统,不是装在虚拟机上,界面还挺好的,无奈的是,wifi连接却出现了非常烦人的问题! 如果你的无线网卡型号是:rtl8723be,那么就 ...

  4. 转载:IBM红米连接wifi的方法

    转载自:http://bbs.xiaomi.cn/thread-9312716-1-1.html 楼主去年年底进入IBM当码农,当时手里是一部米2和一部红米IBM使用的WIFI是很多企业都采用的802 ...

  5. 笔记本计算机的连接无线网络连接,笔记本电脑连接wifi的方法步骤

    笔记本电脑怎么连接wifi?Wi-Fi是一种可以将个人电脑.手持设备(如pad.手机)等终端以无线方式互相连接的技术,事实上它是一个高频无线电信号.下面就由学习啦小编来给大家说说笔记本电脑怎么连接wi ...

  6. windows7台式计算机网线连接,win7台式机连接wifi的方法步骤详解(2)

    家用电脑怎么设置wifi 共享网络的两种方法1.通过使用猎豹WiFi.360WiFi等wifi发射软件,通过电脑的无线网卡发送wifi信号,手机连接即可实现手机的或ipad等电子产品的网络访问. 具体 ...

  7. iPhone无法连接Wi-Fi解决方法

    些用户在使用iPhone系列机型,或使用已经升级到iOS14的设备时,可能会遇到"无法加入网络"的提示,如下图. 这个情况一般是因为,苹果在iOS14中加入了一个新的选项,无线局域 ...

  8. 平板电脑与计算机连接网络,平板电脑怎么连接网络 平板连接wifi上网方法【详解】...

    平板电脑怎么连接网络? 2010年不少智能手机与多数平板电脑都支持Wi-Fi上网.实际上就是把有线网络信号转换成无线信号,使用无线路由器供支持其技术的相关电脑,手机,平板等接收. 但是Wi-Fi信号也 ...

  9. 3ds无线传输连接服务器失败,3ds连不上wifi怎么办? 3ds连接wifi的方法

    近日一直困扰于3dsll不能连接wifi,对于重度掌机综合症患者而言这是一件十分痛苦的事情,不能玩怪物猎人4G了,眼睁睁看着基友们一路冲击G位,自己还守着一套黑丝装扛着一根破破烂烂的蜘蛛棍在上位单机摸 ...

最新文章

  1. Eclipse中阿里JAVA代码规范插件(P3C)的安装及使用
  2. 计算机机房综合防护,计算机机房综合防护系统技术方案
  3. 读“ModSecurity配置关键字说明”之摘抄
  4. concat php,php基于concat实现无限分类
  5. 极大似然估计和贝叶斯估计
  6. linux改文件系统类型,linux文件系统类型及mount
  7. Vue组件自定义事件
  8. Result Cache结果高速缓存 (转)
  9. 数字和模拟通信系统 中文版_浏览器指纹欺骗工具-VMLogin中文版是怎么一个反指纹防关联浏览器...
  10. CentOS7 配置网络物理机ping不上虚拟机解决方法
  11. SQL Server 数据库之字符串函数
  12. Python爬取网上文章并发表到微信公众号
  13. ecshop mysql 操作_ecshop数据库操作函数
  14. sqlite developer过期解决办法
  15. 鸡啄米教程之VS2010/MFC编程入门教程之目录和总结
  16. 虞美人【秦观】鸳鸯惊起不无愁。柳外一双飞去、却回头。
  17. 关于SVN提交不成功问题
  18. 利用imu估计roll、pitch的理解
  19. 深度学习中端到端(end-to-end)简要理解
  20. 什么是8K视频技术!8K视频测试解决方案

热门文章

  1. 最新hp笔记本驱动大全
  2. 用emacs的org-mode写日记
  3. 校园枪击案后,这个美国小哥开发了“枪支检测器”!迅速定位疑犯,适配任何摄像头...
  4. 吃瓜群众从来不在意枪击案是不是因为代码规范引发的
  5. java同学录_java校友录系统
  6. 中国 邮政编码四级结构,省(省无邮政编码)、市、区、街道邮政编码,在线api获取
  7. Quest 3d中Lua script中常用方法2
  8. java txtreader_Java读取和写入文本文件内容
  9. 【2022年4月1日 经验】Microsoft AZ-900 微软认证 网上考试 攻略
  10. 基于jsp+servlet的银行管理系统(eclipse控制台和mysql数据库交互)。