Android: Comment créer EAP wifi configuration par programmation?
Je sais comment créer Ouvert/WEP/PSK/PSK2 configuration par programmation.
ex.
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "ssid";
conf.preSharedKey = "\"password\"";
conf.status = WifiConfiguration.Status.ENABLED;
conf.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
conf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
conf.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
conf.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
int res = wifi.addNetwork(conf);
boolean b = wifi.enableNetwork(res, true);
Mais comment puis-je créer un pour '802.1 x EAP'?
En regardant dans le code source:
..\packages\apps\Settings\src\com\android\settings\wifi\WifiDialog.java
case AccessPoint.SECURITY_EAP:
config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
config.eap.setValue((String) mEapMethod.getSelectedItem());
config.phase2.setValue((mPhase2.getSelectedItemPosition() == 0) ? "" :
"auth=" + mPhase2.getSelectedItem());
config.ca_cert.setValue((mEapCaCert.getSelectedItemPosition() == 0) ? "" :
KEYSTORE_SPACE + Credentials.CA_CERTIFICATE +
(String) mEapCaCert.getSelectedItem());
config.client_cert.setValue((mEapUserCert.getSelectedItemPosition() == 0) ? "" :
KEYSTORE_SPACE + Credentials.USER_CERTIFICATE +
(String) mEapUserCert.getSelectedItem());
config.private_key.setValue((mEapUserCert.getSelectedItemPosition() == 0) ? "" :
KEYSTORE_SPACE + Credentials.USER_PRIVATE_KEY +
(String) mEapUserCert.getSelectedItem());
config.identity.setValue((mEapIdentity.length() == 0) ? "" :
mEapIdentity.getText().toString());
config.anonymous_identity.setValue((mEapAnonymous.length() == 0) ? "" :
mEapAnonymous.getText().toString());
if (mPassword.length() != 0) {
config.password.setValue(mPassword.getText().toString());
}
Semble faire le travail, mais 'config.eap " n'est pas accessible à partir de mon application.
Est-il un moyen de configurer les types EAP ou n'est-il pas possible?
OriginalL'auteur jclova | 2010-11-22
Vous devez vous connecter pour publier un commentaire.
J'ai répondu à cette question ici:
Procédure de programmation pour créer et lire WEP/EAP WiFi configurations dans Android?
hth 🙂
OriginalL'auteur Alok Save
Réflexion Java API peut être utilisé pour créer IEEE802.x réseau avec certificat. Vous pouvez directement créer IEEE802.x connexion réseau est version antérieure (comme 1.6). Dans le dernier android "EnterpriseField" (un intérieur de classe) n'est pas directement accessible par le biais du programme.
OriginalL'auteur James