connectivityManager.activeNetwork ist immer null obwohl eine WLAN-Verbindung besteht

  • Hallo zusammen,


    ich versuche vor Aufruf von Netzwerk-Funktionen zunächt zu ermitteln, ob das Smartphone eine Netzwerkverbindung hat.

    Im Manifest habe ich angegeben:

    Code
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    Im Code habe ich über enstprechende Log-Ausgaben festgestellt, dass connectivityManager.activeNetwork immer null ist.

    if (capabilities != null) kommt immer im else-Zweig an.


    Das Smartphone ist aber mit dem WLAN und dem Internet verbunden. Auf dem Smartphone läuft ein LineageOs Android 13. In den Systemeinstellungen wird mir eine IPV4-Adresse angezeigt - also sollte auch eine Netzwerkverbindung vorliegen ?( .


    Hat jemand einen Tipp, warum der ConnentivityManager trotzdem kein activeNetwork erkennt? Mache ich da im Code etwas falsch? Fehlt noch eine weitere permission?


    Wenn ich die Abfrage übergehe und direkt die IP-Adresse auslese, bekomme ich diese auch korrekt angezeigt. Der nachfolgende Code ergibt genau die Adresse, die mir auch in den Systemeisntellungten des Smartphone angezeigt wird.

    Ich könnte daher auch einfach die vorherige Abfrage der Netzwerkverbindung umgehen und gleich die IP abfragen und validieren. Aber dass kein activeNetwork gefunden wird hat je einen Grund, der bei Übergehen der Abfrage irgendwo später zu unerklärlichen Fehlern führt und dann denkt man nicht mehr dran, dass man hier mal eine Prüfung umgangen hat...

    Code
    // das funktioniert:
    fun getMobileIP(): String {
        NetworkInterface.getNetworkInterfaces()?.toList()?.map { networkInterface ->
            networkInterface.inetAddresses?.toList()?.find {
                !it.isLoopbackAddress && it is Inet4Address
            }?.let { return it.hostAddress }
        }
        return ""
    }



    Viele Grüße,

    Siegbert

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!