Manuell eine temporäre Verbindung zum WiFi aufbauen

  • 3 Antworten
  • Letztes Antwortdatum
Black NEXUS

Black NEXUS

Ambitioniertes Mitglied
4
Hiho,

ich habe momentan ein Problem, was den manuellen Verbindungsaufbau in ein spezielles WiFi Netz angeht. Urprünglich war es ja so, dass sich ein Mitarbeiter mit seinem Kürzel und seinem Passwort anmelden musste und diese Daten wurden mit dem AD abgeglichen. Nun haben wir aber das Problem, dass es aus Sicherheitsgründen so nicht umgesetzt werden kann...

Als einzige Alternative bleibt, dass sich der Mitarbeiter temporär im sog. Projekt WLAN anmelden muss, da dieser aber keinen Zugriff auf die Einstellungen bekommen darf, muss es in der App passieren. Er gibt seine Daten ganz normal ein und es wird eine Verbindung hergestellt.

Nun hab ich das Problem, dass ich nicht weis wie ich das genau realisieren soll, die meisten Tutorials sind auf WEP ausgelegt, wir nutzen aber folgendes:
Sicherheit: 802.1x EAP
EAP-Methode: PEAP
Phase 2-Authentifizierung: MSCHAPV2
Keine Zertifikate
Identifikation + Passwort

Wichtig ist, dass diese Verbindung wirklich nur temporär ist, damit kein anderer mit diesen Benutzerdaten handtieren kann. Dafür verwende ich eine Session, nach 3 Minuten Inaktivität wird man automatisch abgemeldet, wenn man es nicht selber vorher tut. Die Zugangsdaten dürfen nicht gespeichert werden!

Hat jemand einen Ansatz, wie ich an die Sache herangehen kann? Hab noch keine Erfahrung wie man sich manuell in WiFi Netzwerke einbinden kann, bisher kenne ich nur die Kommunikation via REST.

Ich danke schon mal für hilfreiche Antworten :)
 
Sehr gute Frage! :thumbup:

Ich habe das auch mal versucht, allerdings mit WPA statt EAP.

Hier ist mal ein netter Stackoverflow Beitrag: How to connect to a specific wifi network in Android programmatically? - Stack Overflow
Das hilft schonmal grundsätzlich weiter.

Dann gibt es noch diesen Beitrag:
How to programatically create and read WEP/EAP WiFi configurations in Android? - Stack Overflow
der speziell auch auf EAP eingeht. Aufpassen solltest du hier allerdings, dass du nicht WifiManager.saveConfiguration() aufrufst, denn du willst es ja nicht dauerhaft speichern. Ohne saveConfiguration ist die Verbindung nicht dauerhaft gespeichert.

Es sieht auf den ersten Blick sehr kompliziert aus, wegen der Reflection, aber wenn du weitere Fragen hast nur zu.
 
  • Danke
Reaktionen: Black NEXUS
Danke, ich werd es mir mal zu Gemüte führen :)
 
Hiho,

also ich habe heute mal bissel herumgesucht und bin auf BUWiFi gestoßen, welches alle nötigen Klassen mitliefert. Kleinere Anpassungen waren nötig und es besteht nun eine funktionierende Verbindung zum Netzwerk :)

Lediglich die NetworkConfig.java musste ich wie folgt erweitern:
Code:
public void setGroupCiphers(int v){
                this.config.allowedGroupCiphers.set(v);
        }
       
        public void setGroupCiphers(int[] v){
                for(int i : v)
                  this.setGroupCiphers(i);
        }
Desweiteren musste dann der Code in der Activity noch erweitert werden:
Code:
netConfig.setKeyManagement(new int[]{WifiConfiguration.KeyMgmt.IEEE8021X,WifiConfiguration.KeyMgmt.WPA_EAP});

netConfig.setGroupCiphers(new int[]{WifiConfiguration.GroupCipher.CCMP,WifiConfiguration.GroupCipher.TKIP,WifiConfiguration.GroupCipher.WEP104,WifiConfiguration.GroupCipher.WEP40});
Läuft einwandfrei, bin zufrieden :D
Ohne diese Erweiterungen ging es nicht, kann nicht sagen warum, aber er hat die Verbindung gespeichert aber konnte sich nicht verbinden.

Nochmals großen Dank für die Hilfe ;)
 
Zuletzt bearbeitet:
Zurück
Oben Unten