Android Enterprise设置后如何在Android 10中保存EAP wifi网络

问题描述

直到API等级29,我们一直在使用WifiConfiguration与我们的DPC(设备和配置文件所有者模式)建立wifi连接。从API lvl 29开始,我们仍然可以保存Open,WEP,WPA网络,但是保存EAP网络的任何尝试都将被完全忽略。我们尝试使用WifiSuggestions方法,该建议已正确显示通知栏中,但是当用户点击“允许”时,则没有任何反应。日志中没有错误,addNetworkSuggestions()方法返回STATUS_NETWORK_SUGGESTIONS_SUCCESS。

仅当向我们的DPC提供设备/配置文件所有者权限并具有完整的配置过程(在首次启动过程中创建工作配置文件或对其进行完全管理)时,才存在此问题。使用ADB获取设备所有者的状态可以通过允许网络建议来保存网络。

这是我们设置网络建议的方式:

@RequiresApi(api = Build.VERSION_CODES.Q)
public static WifiNetworkSuggestion setupWifiNetworkSuggestion (WifiConfiguration wifiConfiguration){
  return new WifiNetworkSuggestion.Builder()
          .setSsid(wifiConfiguration.SSID)
          .setIsHiddenSsid(wifiConfiguration.hiddenSSID)
          .setWpa2EnterpriseConfig(wifiConfiguration.enterpriseConfig)
          .build();
}

之后,我们致电:

List<WifiNetworkSuggestion> networkSuggestionList = new ArrayList<>();
networkSuggestionList.add(setupWifiNetworkSuggestion(wifiConfiguration));

int status = mWifiManager.addNetworkSuggestions(networkSuggestionList);

if (status != WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS) {
  _logger.error("Problem adding network suggestion,status code: " + status);
}

我们错过了什么吗?相同的代码在我们不使用emm设置获取设备所有者的其他应用程序中也有效。两个应用程序中所有请求的权限都相同。我们试图获取一些错误信息或设置一些日志,但始终只能获得成功状态。

解决方法

我们终于成功了!该问题是由三个独立的问题引起的:

  1. 我们缺少允许的密钥管理设置WifiConfiguration.KeyMgmt.WPA_EAP

  2. 当企业配置中提供任何域时,我们的测试RADIUS服务器将拒绝连接尝试。即使在解决Android方面的问题时,它也给我们带来了不必要的断开连接

  3. 最重要:由于某些原因,我们的密码策略未得到实施,并且在测试环境中,我们使用自签名证书。如果没有在设备上至少设置PIN锁,则证书无法附加到网络配置文件,因此无法添加/连接证书。即使网络已保存,它也缺少必须手动选择的证书(尽管已正确部署到证书存储中)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...