Beiträge von haegar

    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

    Hallo zusammen,

    trotz Stunden Suche in Developer.anroid.com finde ich nicht den richtigen Ansatz für eine vermutlich ganz einfache Fragestellung.


    Ich habe eine neues Proekt erstellt auf Basis der "Bottom-Navigation"-Voralage.

    Zur Navigation habe ich ein weiteres Fragment "notification_details" erstellt und vom Fragement "navigation_notifications" eine action als Verbidnung zu meinem neuen Fragement

    Code
    <fragment
        android:id="@+id/navigation_notifications"
        android:name="de.meinProjekt.ui.notifications.NotificationsFragment"
        android:label="@string/title_notifications"
        tools:layout="@layout/fragment_notifications" >
        <action
            android:id="@+id/action_navigation_notifications_to_notification_details"
            app:destination="@id/notification_details" />
    </fragment>

    Im Notifications-Fragment habe ich einen Button und dort auch ein onClick angegeben

    Code
    <Button
        android:id="@+id/btnShowDetails"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="WLAN-Einstellungen"
        tools:layout_editor_absoluteX="36dp"
        tools:layout_editor_absoluteY="132dp"
        android:onClick="btnShowDetails"/>


    Bei Klick auf den Button soll das notification_details Fragment angezeigt werden. Ich habe aber offensichtlich das Prinzip dahinter noch nicht verstanden (entwickle eigentlich seit vielen Jahren in Delphi, für eine App aber leider nicht wirklich nutzbar).

    Ich finde aber nicht die richtige Stelle, an der ich das onClick "einbauen" muss.Nach meinem bisherigen Verständnis wäre das in notificationsFragment.kt.



    Kann mit jemand einen Tipp geben oder einen Verweis auf eine Tutorial, wie man diese vermeintlich eifache Anforderung umsetzen kann?


    Aus Delphi bin ich es gewohnt, dass ich z.B. bei einem Button per GUI in der Entwicklungsumgebung meine OnClick-Routine als Rumpf angelegt bekomme und nur noch den Inhalt programmieren muss. Viellecht geht das ja in Android-Studio auch und ich habe es nur noch nicht gefunden ?


    Vielen Dank schon mal für alle Tipps!