前提・実現したいこと
JavaでRADIUS認証済みのWifiに自動接続されるアプリを作成しております。
設定アプリからの手動接続は以下の設定で問題無く出来ることは確認済みです。
・フェーズ2認証:MSCHAPV2
・ドメイン、ID、パスワードは設定済みのものを入力
上記Wifiへの接続処理をJava側で実装したいと考えております。
発生している問題・エラーメッセージ
AndroidQ以降でのWifi接続はWifiManager.addNetworkSuggestions()を使用するようなのですが、
設定が不完全なのか接続が出来ません。
Logcat上でログを確認したところ以下の例外ログが出ておりました。
ご教授いただけましたら幸いです。
Logcat
1failed, Enterprise configuration is insecure
該当のソースコード
Java
1try { 2 WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 3 4 WifiConfiguration targetConfig = new WifiConfiguration(); 5 targetConfig.SSID = '"' + targetSSID + '"'; 6 targetConfig.allowedKeyManagement.clear(); 7 targetConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP); 8 targetConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X); 9 WifiEnterpriseConfig ec = new WifiEnterpriseConfig(); 10 ec.setIdentity(userName); 11 ec.setPassword(password); 12 ec.setDomainSuffixMatch("domain.name"); 13 ec.setEapMethod(WifiEnterpriseConfig.Eap.PEAP); 14 ec.setPhase2Method(WifiEnterpriseConfig.Phase2.MSCHAPV2); 15 targetConfig.enterpriseConfig = ec; 16 17 final WifiNetworkSuggestion suggestion1 = 18 new WifiNetworkSuggestion.Builder() 19 .setSsid(targetSSID) 20 .setWpa2Passphrase(password) 21 .setWpa2EnterpriseConfig(targetConfig.enterpriseConfig) 22 .setIsAppInteractionRequired(true) 23 .build(); 24 25 final List<WifiNetworkSuggestion> list = new ArrayList<>(); 26 list.add(suggestion1); 27 int result = wifiManager.addNetworkSuggestions(list); 28 29 if (result == WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS) { 30 Log.d("testLog", "success"); 31 } else { 32 Log.d("testLog", "failed"); 33 } 34} catch(Exception e){ 35 Log.d("testLog", "failed, " + e.getMessage()); 36} 37
補足情報(FW/ツールのバージョンなど)
Android Studio 4.0.1
あなたの回答
tips
プレビュー