当前位置: 首页 > news >正文

Android14 WPA2和WPA3 类型的WiFi网络连接

Android14 WPA2和WPA3 类型的WiFi网络连接

文章目录

  • Android14 WPA2和WPA3 类型的WiFi网络连接
    • 一、前言
    • 二、源码分析
      • 1、Android原生Settings 连接WPA 和WPA3 网络的配置代码
    • 三、其他
      • 1、WPA/WPA2和WPA3连接小结
      • 2、WPA配置无法连接WPA3的网络的情况
      • Android11 Wifi 加密类型详解

一、前言

Android WiFi网络类型常用就是WPA/PA2,Android10之后很多手机支持了WPA3 网络的连接和热点WPA3类型设置。

开发过程中是有遇到WPA3网络无法连接的问题,之前方案WPA3网络是可以用WPA2的配置连接成功的,但是Android14的MTK方案上不行了。

本文的分析处理事对自己设置应用上的优化,原生设置应用是可以正常连接WPA3 网络。

二、源码分析

1、Android原生Settings 连接WPA 和WPA3 网络的配置代码

packages\apps\Settings\src\com\android\settings\wifi\WifiConfigController2.java

public WifiConfiguration getConfig() {WifiConfiguration config;...case WifiEntry.SECURITY_PSK: //WPA、WPA2if (mWifiEntry == null || !mWifiEntry.isSaved()) {config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_PSK);}if (mPasswordView.length() != 0) {String password = mPasswordView.getText().toString();if (password.matches("[0-9A-Fa-f]{64}")) {config.preSharedKey = password;} else {config.preSharedKey = '"' + password + '"';}}break;case WifiEntry.SECURITY_SAE:  //WPA3if (mWifiEntry == null || !mWifiEntry.isSaved()) {config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_SAE);}if (mPasswordView.length() != 0) {String password = mPasswordView.getText().toString();config.preSharedKey = '"' + password + '"';}break;...return config;
}

从原生代码可以看到WPA2和WPA3 需要校验和配置的信息是不同的。

所以如果自己应用总WPA3的网络使用WPA的配置无法连接成功,就设置WPA3的网络配置信息吧。

三、其他

1、WPA/WPA2和WPA3连接小结

正常情况下:
使用WPA的网络配置是可以正常连接WPA3网络的;
但是使用WPA3的网络配置是无法正常连接WPA网络的;
因为WPA3比WPA校验的东西多一下,会出现校验失败,无法连接的情况。
而使用WPA校验,只是校验配置项少了,不影响连接。

如果WPA3的网络使用WPA的配置无法连接成功,就设置WPA3的网络配置信息吧。

2、WPA配置无法连接WPA3的网络的情况

目前看只有Android14 MTK 9679 的wifi使用WPA配置无法连接WPA3的网络。
其他Android14方案比如RK3588和AML311D2 都是可以使用 WPA配置正常连接WPA3的网络的。

这个可能和内核,驱动,Google patch更新有关。因为都有坐了更新修改。

Android11 Wifi 加密类型详解

之前Android11 写的wifi加密类型介绍,Android13 以后依然是差不多的

https://blog.csdn.net/wenzhi20102321/article/details/126219495

http://www.lryc.cn/news/419083.html

相关文章:

  • 24/8/5算法笔记 逻辑回归sigmoid
  • 适用于验证码的OCR,识别快速,使用简单!
  • 超简单适合练手的双指针题:判断子序列
  • 打破老美垄断,潘展乐商业价值起飞
  • java面试题:简化URL
  • 用 echarts 开发地图、点击展示自定义信息框
  • Android 应用兼容性变更调试
  • 76 多态
  • 数据采集工具之Canal
  • 【后端】消息中间件小册
  • 【进阶篇-Day14:JAVA中IO流之转换流、序列化流、打印流、Properties集合的介绍】
  • 【Material-UI】Checkbox 组件中的 Label Placement 设置详解
  • XJTUSE-离散数学-集合
  • 安徽省消防设施操作员题库
  • Singularity容器安装与使用
  • Linux 文件、重定向、缓冲区
  • WEB漏洞-SQL注入之MYSQL注入
  • mysql 查询 from a, b 和 a left join b 有什么区别
  • 禁用ssh 22端口
  • C++基础编程的学习3
  • Java中的Optional类:解锁优雅编程的秘密
  • 聆思CSK6大模型开发板语音控制风扇(上)
  • 代码随想录算法训练营第四十一天 | 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机II、123. 买卖股票的最佳时机III
  • 延时队列与redis and rabbitmq
  • 数据结构--单链
  • 春秋云镜CVE-2023-38836
  • Linux 进程概念
  • 【秋招突围】2024届校招-米哈游笔试题-第二套
  • tklog v0.0.9 :Rust灵活高效日志管理
  • 长安链java-sdk打成jar包部署找不到配置文件,springBoot项目制作Docker镜像