关于安卓10以上连接wifi无法联网的问题

这篇具有很好参考价值的文章主要介绍了关于安卓10以上连接wifi无法联网的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

连接方式

在Android10之前应用内连接wifi是调用addNetwork和enableNetwork。但在Android10以后以上方法不会生效。

在Android10及以上,官方提供了以下应用内连接wifi的方式:文档

val specifier = WifiNetworkSpecifier.Builder()
    .setSsidPattern(PatternMatcher("test", PatternMatcher.PATTERN_PREFIX))
    .setBssidPattern(MacAddress.fromString("10:03:23:00:00:00"), MacAddress.fromString("ff:ff:ff:00:00:00"))
    .build()

val request = NetworkRequest.Builder()
    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
    .setNetworkSpecifier(specifier)
    .build()

val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

val networkCallback = object : ConnectivityManager.NetworkCallback() {
    ...
    override fun onAvailable(network: Network?) {
        // do success processing here..
    }

    override fun onUnavailable() {
        // do failure processing here..
    }
    ...
}
connectivityManager.requestNetwork(request, networkCallback)
...
// Release the request when done.
connectivityManager.unregisterNetworkCallback(networkCallback)

但是注意!这段代码在国内的安卓机来说根本没什么鸟用,有些能弹出连接提示框,有些自动给你连接失败,关键是:就算连接成功后,也根本无法访问外部网络。

有人说在networkCallback的onAvailable方法加上

connectivityManager.bindProcessToNetwork(network);

我可以告诉你,一样无效,谷歌和国内的手机厂商没有提供解决方案,可能没重视。

测试过在鸿蒙系统可以做到,但也不稳定。

其他发现

基于以上方案无解,我又看到了一个关于WifiNetworkSuggestion的介绍:

运行 Android 10 (API 级别 29) 或更高版本 的设备允许您的应用添加设备的网络凭据,以自动连接到 WLAN 接入点。您可以使用 WifiNetworkSuggestion 就连接到哪个网络提供建议。平台最终会根据您的应用和其他应用的建议,选择要接受的接入点。

好吧,经过试验,这个只是告诉你我会建议系统连接你的wifi,但并不一定会去连接,所以可以忽略这个方案。

解决方案

1.如果你不是非得校验wifi的正确性,那么弹窗提示用户手动跳转到wifi设置界面,让用户手动连接指定wifi。

val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)

2.既然是安卓10以上的问题,那么只能不使用10以上的SDK

compileSdkVersion 28
targetSdkVersion 28

这个治标不治本,无可奈何的选择。

后续

经测试MIUI 14系统已经可以支持以上连接wifi的代码,看来手机厂商也在逐步解决这个问题文章来源地址https://www.toymoban.com/news/detail-424332.html

到了这里,关于关于安卓10以上连接wifi无法联网的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 9.0以上 连接wifi失败 解决方案

    Android9开始,WIFI那块的API发生了改变: addNetwork(WifiConfiguration config) 此方法在API级别Q中已弃用) 见addNetworkSuggestions(java.util.List), removeNetworkSuggestions(java.util.List)新的API添加Wi-Fi网络进行审议时,自动连接到无线网络。 兼容性注意:对于目标Build.VERSION_CODES.Q或更高的应用程序

    2024年02月12日
    浏览(43)
  • Android 系统,连接Wifi后无法访问网络问题的解决方案

    Android 系统,连接Wifi后无法访问网络问题的解决方案 在使用Android手机或平板连接Wifi时,有时会遇到已成功连接上Wifi但无法访问网络的情况。这种问题可能是由于多种原因引起的,例如IP地址冲突、DNS设置错误、路由器故障等。本文将为大家提供一些常见的解决方案,并给出

    2024年02月05日
    浏览(52)
  • win10无法联网,对“远程计算机或设备将不接受连接”的解决方法

    电脑已经通过校园网认证连上宽带号了,但就是打不开网页,并且显示无网,在网页端进行windows网络诊断,出现“ 远程计算机或设备将不接受连接” 问题,诊断结果如下图所示: 1.打开 电脑右下角的“网络和Internet设置”; 2.找到代理,将代理服务器关闭即可; 3.刷新网页

    2024年02月07日
    浏览(42)
  • 关于微软应用商店无法联网 错误代码:0x80072EFD的问题终于解决了

    关于微软应用商店无法联网 错误代码:0x80072EFD的问题,系统更新也显示错误,更新服务都是开启的,就是不能更新,折腾了两天试了百度很多方法, 一、修改dns无效; 二清理商店缓存wsreset无效,重新安装商店、重置商店都无效;三、用抓包软件Fiddler 修改无效(因为看到网

    2024年02月10日
    浏览(77)
  • 关于安卓13中Android/data目录下的文件夹只能查看无法进行删改的问题

    因为升级了安卓13,然后有个app需要恢复数据,打算和以前一样直接删除Android/data下对应目录再添加,结果不行,以下是结合网上以及自己手机情况来做的一种解决方案。 准备: 待恢复app(包名com.test.ai) 其他app(包名com.other.ai,这个app当做临时变量就行,随便任意app,且知

    2024年02月09日
    浏览(76)
  • 笔记本电脑WIFI和蓝牙无法使用,无线网卡驱动感叹号,该设备无法启动(代码10) 问题解决方案

    笔记本电脑开机后出现WIFI和蓝牙都无法使用的情况,可能是出现如下原因: 情况一:电脑开启的飞行模式,和手机飞行模式一样会关闭所有无线功能。出现这种情况一般是误操作造成的。    解决方案 :这种情况比较简单,关闭飞行模式即可! 情况二:无线网卡驱动没有正

    2024年02月11日
    浏览(196)
  • 【记录日常】解决Mac电脑能联网但是浏览器显示无法连接网络的问题

    问题描述: 微信、qq等软件都能联网,但是使用Chrome、Safari打开都显示无法连接网络。 尝试后仍然没成功的方法: 1.忘记当前网络,重新连接wifi 2.重启电脑 3.重新修改dns 解决的方式: 后来是看到Chrome的提示,关闭代理,尝试后解决。 路径:选择“网络偏好设置”——“高

    2024年02月12日
    浏览(80)
  • 关于 solidworks启动问题:无法获得下列许可 solidworks standard 无法连接到服务器(-15,10,10016)

    SolidWorks软件功能强大,组件众多、易学易用的特点,使其成为3D CAD解决方案的领先和主流。在实体、表面、钣金设计、运动运动仿真、有限元分析等模块中具有不可替代的功能。不知道有没有小伙伴遇到和我一样的问题 ,就是电脑重启后软件就打不开啦,出现下图所示内容

    2024年02月04日
    浏览(226)
  • 【Win10系统右下角网络图标消失、无法联网、网络Internet状态闪退等问题解决方法】

    今天开机突然碰到网络异常情况: 头天晚上还正常使用,正常关机,上午再打开就出了问题; 任务栏右下角网络图标消失,有线无线网均无法连接; 系统设置中的“网络”的状态无法打开,打开就闪退; 从更改适配器选项中打开网络任务栏,发现没有可用网络,以往的WL

    2024年02月04日
    浏览(67)
  • 解决问题:关于云服务器Linux在windows中telnet访问无法打开到主机的连接。 在端口 23: 连接失败的问题

    在本地先开启windows服务的telnet,在windows使用telnet 127.0.0.1 测试telnet服务是否启用 出现下面的即为可用 账号为本机的账户名在cmd中输入whoami即可得到,密码为自己开机密码 使用telnet测试是否能连接到服务器 在服务器端使用命令查看正在运行的端口 在服务器使用telnet 127.0.0.

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包