java - 如何在 Android 10(Android Q) 或更高版本上连接到半径认证的 Wifi 设备
问题描述
我正在创建一个到半径经过身份验证的 Wifi 设备的连接过程。
我尝试根据各种文章进行连接,但它不起作用。
我通过以下设置确认了手动连接。
・第二阶段认证:MSCHAPV2
・CA证书:使用系统证书
・域:域字符串
・ID:ID字符串
・密码:密码字符串
Logcat 在 addNetworkSuggestions 期间显示“企业配置不安全”。
Wifi连接处理部分的代码如下。
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration targetConfig = new WifiConfiguration();
targetConfig.SSID = '"' + targetSSID + '"';
targetConfig.allowedKeyManagement.clear();
targetConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
targetConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
WifiEnterpriseConfig ec = new WifiEnterpriseConfig();
ec.setIdentity(userName);
ec.setPassword(password);
ec.setDomainSuffixMatch("domain.name");
ec.setEapMethod(WifiEnterpriseConfig.Eap.PEAP);
ec.setPhase2Method(WifiEnterpriseConfig.Phase2.MSCHAPV2);
targetConfig.enterpriseConfig = ec;
final WifiNetworkSuggestion suggestion1 =
new WifiNetworkSuggestion.Builder()
.setSsid(targetSSID)
.setWpa2Passphrase(password)
.setWpa2EnterpriseConfig(targetConfig.enterpriseConfig)
.setIsAppInteractionRequired(true)
.build();
final List<WifiNetworkSuggestion> list = new ArrayList<>();
list.add(suggestion1);
int result = wifiManager.addNetworkSuggestions(list);
if (result == WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS) {
Log.d("testLog", "success");
} else {
Log.d("testLog", "failed");
}
解决方案
推荐阅读
- ruby - Ruby 元编程:define_method 块不维护范围
- excel - VBA:使用宏对工作表进行排序
- reactjs - 反应异步选择
- css - select2中的选项很长时的背景颜色
- xpath - 网页抓取 - xPath 问题
- javascript - 无法在多选下拉列表中删除和添加项目
- python - 获取价格数组
- excel-formula - 如何在Excel中将ID号与特定月份和年份的总出现次数相加
- variables - 如何:使用 sampleresults 将 JMeterVariable 值保存到 influxdb
- crystal-reports - 在水晶报表中连接字符串