Android Studio App stürzt immer ab. Wer kann mir sagen was an diesen Zeilen falsch ist?

  • Antworten:121
  • GeschlossenBentwortet
Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 12:37:00 via Website

Funktionieren tut es trotzdem nicht (thinking). Noch eine andere Idee. Name und Passwort stimmen, habs mehrmals überprüft.

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 13:41:20 via Website

btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String networkSSID = "xxx"; //Richtiger Name
String networkPass = "xxx"; //Richtiges Passwort

            WifiConfiguration conf = new WifiConfiguration();
            conf.SSID = "\"" + networkSSID + "\""; // Please note the quotes. String should contain ssid in quotes
            conf.wepKeys[0] = "\"" + networkPass + "\"";
            conf.wepTxKeyIndex = 0;
            conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
            conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
            conf.preSharedKey = "\"" + networkPass + "\"";
            conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
            WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
            wifiManager.addNetwork(conf);
            List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
            for (WifiConfiguration i : list) {
                if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
                    wifiManager.disconnect();
                    wifiManager.enableNetwork(i.networkId, true);
                    wifiManager.reconnect();

                    break;
                }

            }


        }
});

ICh bin diese Zeilen jetzt wieder und wieder durch aber finde den Fehler nicht :(

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 13:44:10 via Website

Siehe hier:
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
Du erlaubst bisher nur WEP verschlüsselung, da musst du die anderen auch einfügen

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 14:12:40 via Website

conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);

das müssten dann alle sein ?

Wenn ich das nämlich einfüge funktioniert es wenn ich in diesem Wlan angemeldet bin (sprich Wlan wird entfernt und wieder angemeldet) bin ich aber nicht in deisem Wlan so meldet sich die App auch nicht an.

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 14:15:15 via Website

Hmm komisch, spiel mal damit etwas herum, vlielleicht endeckst du ja den Auslöser

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 14:24:07 via App

Leider leichter gesagt wie getan wenn man sich noch nicht so auskennt :(

Außerdem wenn ich wie gesagt nicht im Wlan bin, den Button drücke und danach ganz normal in meine Wlan-Einstellung gehen steht bei meinem Wlan-Netzwerk-Status: "Scan läuft..."

— geändert am 15.11.2015, 14:40:21

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 17:02:21 via Website

Kannst du mir erklären was diese Zeilen genau machen. Es könnte sein das hier das Problem liegt. hier ist nähmlich die Rede von Disconnect und reconnect.

for (WifiConfiguration i : list) {
if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
wifiManager.disconnect();
wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();

                    break;
                }

            }

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 17:12:38 via Website

Das einfachste, wenn man sowas nicht weiss schaut man in der Doku nach:
http://developer.android.com/reference/android/net/wifi/WifiManager.html

disconnect()
Disassociate from the currently active access point.

enableNetwork(int netId, boolean disableOthers)
Allow a previously configured network to be associated with.

reconnect()
Reconnect to the currently active access point, if we are currently disconnected.

Also erst vom aktuellen trennen, dann neue SSID und PW übernehmen und dann wieder verbinden.
Das einfachste ist, du benutzt dne Button wenn du gerade nicht verbunden bist. Wenn er sich dann automatisch verbindet, weisst du dass es geht

— geändert am 15.11.2015, 17:12:56

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 17:22:05 via Website

Dass macht die App ja gerade nicht :'( und ich weiß nicht warum. Ich hab absolut keine Ahnung... HILFE !

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 17:35:23 via Website

Nutz mal die Zeieln einzeln und schau ob das finktioniert, z.b. ab die disconnect() Methode funktioniert

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 18:05:56 via Website

Wie soll ich sie Einzeln nutzen ? :O Die meisten Zeilen zeigen Ihre Wirkung doch nur in der Combination :O

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 18:14:23 via App

Na ja schon aber du kannst ja erstmal prüfen was geht und was nicht. sozusagen in Einzeltrile zerlegen diese auf funktion prüfen und dann zusammensetzen

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 18:20:57 via Website

ok habs zum alufen bekommen. Muss wohl mein Konzept etwas ändern. Brauche jetzt noch das Sicherheitslevel bzw. die Verschlüsselung (WPA,...)
in der Liste hab daher den Befehl wlanList.add(sr.SSID); zu wlanList.add(sr.SSID+sr.capabilities); erweitert. Jetzt kommt aber so Schen wie:
-[WPA2-PSK-CCMP][WPS][ESS]
-[WPA2-PSK-CCMP][ESS]
-...
Was muss ich ändern das da nur WPA2 PSK oder sowas steht ?

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 18:22:35 via Website

Den String filtern oder selber dazuschreiben

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 19:53:18 via Website

Ok geschafft :D wie initialisiere ich eine Variable mit mindestens 16 Stellen ?... (thinking)

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 20:16:01 via Website

Was meinst du mir 16 Stellen und welcher Datentyp?

— geändert am 15.11.2015, 20:24:15

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 20:23:11 via App

Für Zahlen. Mit Stellen mein ich sowas wie:
1-> 1Stelle
10-> 2 Stellen
100 -> 3 Stellen
usw.
ich dachte zuerst an long aber es eird mir ständig angezeigt die Zahl sei zu lang

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 20:28:37 via Website

Es müsste long sein:
https://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6559-byte-short-int-long.html

Denn long geht bis 2^63 was ungefähr 9,22*10^18 ist.
Also eine Zahl mit 18 0llen bzw. Stellen.
Denk aber auch an die Schreibweise:

final long MAX_NUMBER_YOU_WANT_TO_HAVE = 9999999999999999L; (L für long)

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 20:58:06 via Website

Ah ok die Schreibweise war das Problem danke (cool)
Eine andere Frage gibt es eine Java-Abfrage die überprüft ob das Gerät in einem Wlan-Netzwerk angemeldet ist und einen true/false-Wert ausspuckt ?

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 21:49:03 via App

Ja das geht:
Schau mal hier

LG Pascal //It's not a bug, it's a feature. :) ;)

Jonas Schmauder
  • Forum-Beiträge: 68

15.11.2015, 21:55:50 via App

ok vielen Dank ! Kann es teoretisch funktionieren eine Variable hochzählen zu lassen und diese Zahl immer wieder als Passwort für das Wlan zu verusuchen, bis es beim richtigen Wlan-Passwort angekommen ist. Oder sperrt da der Wlan-router irgendwann ?

Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2015, 22:08:25 via App

Dazu gebe ich dir keine Auskunft!
Ich finde das nicht gut wenn man versucht andere Wlan PWs durch Brute Force auszuhebeln. Deswegen wirst du hier zu diesem Projekt auch keine weitere Hilfe mehr bekommen.
Damit wäre dies erledigt und der Thread kann zu.

PS: Die Hilfsbereitschaft anderer Leute für sowas zu verwenden ist entteuschend...

LG Pascal //It's not a bug, it's a feature. :) ;)

LudyAndy N.Maestre C.