Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android企业资源调配后如何在Android 10中保存EAP wifi网络_Android_Android Wifi_Emm - Fatal编程技术网

Android企业资源调配后如何在Android 10中保存EAP wifi网络

Android企业资源调配后如何在Android 10中保存EAP wifi网络,android,android-wifi,emm,Android,Android Wifi,Emm,截至API lvl 29,我们一直在使用WifiConfiguration与我们的DPC建立wifi连接(设备和配置文件所有者模式)。由于API lvl 29,我们仍然可以保存Open、WEP、WPA网络,但任何保存EAP网络的尝试都被完全忽略。我们尝试使用WifiSuggestions方法,建议会正确地显示在通知栏中,但当用户点击“允许”时,什么也不会发生。日志中没有错误,addNetworkSuggestions()方法返回状态\网络\建议\成功 只有当我们的DPC通过完整的配置过程(工作配

截至API lvl 29,我们一直在使用WifiConfiguration与我们的DPC建立wifi连接(设备和配置文件所有者模式)。由于API lvl 29,我们仍然可以保存Open、WEP、WPA网络,但任何保存EAP网络的尝试都被完全忽略。我们尝试使用WifiSuggestions方法,建议会正确地显示在通知栏中,但当用户点击“允许”时,什么也不会发生。日志中没有错误,addNetworkSuggestions()方法返回状态\网络\建议\成功

只有当我们的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);
}
List networkSuggestionList=new ArrayList();
networkSuggestionList.add(setupwifinetworkssuggestion(wifiConfiguration));
int status=mWifiManager.addNetworkSuggestionList(网络建议列表);
如果(状态!=WifiManager.status\u NETWORK\u SUCCESS){
_logger.错误(“添加网络建议时出现问题,状态代码:“+状态”);
}

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

我们终于成功了!该问题由三个不同的问题引起:

  • 我们缺少允许的密钥管理设置
    WifiConfiguration.keymagmt.WPA\u EAP

  • 当企业配置中提供任何域时,我们的测试RADIUS服务器拒绝连接尝试。即使在我们解决安卓端问题的时候,它也给了我们不必要的中断

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


  • 您是如何将
    WifiConfiguration.KeyMgmt.WPA_EAP
    作为允许的密钥管理设置添加到新的wifinetworksuggestation生成器的?@BVantur在构建wifinetworksuggestation之前,我们准备了如下的WifiConfiguration:
    config.allowedKeyManagement.clear();config.allowedKeyManagement.set(WifiConfiguration.keymagmt.IEEE8021X);config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP)当我们的WifiConfguration准备好后,我们用它构建建议。