Wie kann man feststellen, ob "Mobile Network Data" aktiviert oder deaktiviert ist (auch wenn eine WLAN-Verbindung besteht)?

Ich habe eine App, mit der ich einen Verbindungsstatusbericht von einer Remoteabfrage abrufen kann.

Ich möchte wissen, ob eine WLAN-Verbindung besteht und ob der Datenzugriff über ein Mobilfunknetz aktiviert ist.

Wenn das WLAN außerhalb der Reichweite liegt, möchte ich wissen, ob ich mich auf das Mobilfunknetz verlassen kann.

Das Problem ist, dass die aktivierten Daten immer als wahr zurückgegeben werden, wenn ich über WLAN verbunden bin, und ich das Mobilfunknetz nur dann ordnungsgemäß abfragen kann, wenn keine WLAN-Verbindung besteht.

Alle Antworten, die ich gesehen habe, lassen darauf schließen, abzufragen, ob die aktuelle Verbindung verfügbar ist, aber ich möchte wissen, ob ein Mobilfunknetz verfügbar ist, falls ich es benötige, auch wenn ich derzeit möglicherweise über WLAN verbunden bin.

Gibt es überhaupt einen Hinweis darauf, ob Mobilfunknetzdaten aktiviert sind, ohne abzufragen, ob eine Verbindung besteht?

BEARBEITEN

Wenn ich über WLAN verbunden bin Wenn ich zu den Einstellungen gehe und "Daten aktiviert" deaktiviere und dann in meiner App mache ich Folgendes:

 boolean mob_avail = 
 conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isAvailable();

mob_avail wird als 'true' zurückgegeben, aber ich habe Mobile Network Data deaktiviert, daher würde ich erwarten, dass es 'false' ist.

Wenn ich das WLAN ausschalte, besteht (zu Recht) keine Verbindung, da ich Mobilfunkdaten deaktiviert habe.

Wie überprüfe ich, ob Mobilfunkdaten aktiviert sind, wenn ich über WLAN verbunden bin?

AKTUALISIEREN

Ich habe mir getAllNetworkInfo () angesehen, wie in den Kommentaren von ss1271 vorgeschlagen

Ich habe die über das Mobilfunknetz zurückgegebenen Informationen unter den folgenden drei Bedingungen ausgegeben

WiFi Aus - Mobile Daten ein

WiFi Ein - Mobile Daten aus

WiFi Ein - Mobile Daten ein

und bekam die folgenden Ergebnisse:

Bei ausgeschaltetem WiFi:

mobile [HSUPA], Status: VERBUNDEN / VERBUNDEN, Grund: unbekannt, Extra: Internet, Roaming: falsch, Failover: falsch, isAvailable: wahr, featureId: -1, userDefault: falsch

Mit WLAN Ein / Mobil AUS

NetworkInfo: Typ: Mobile [HSUPA], Status: DISCONNECTED / DISCONNECTED, Grund: ConnectionDisabled, Extra: (keine), Roaming: false, Failover: false, isAvailable: true, FeatureId: -1, UserDefault: false

Mit WLAN Ein / Mobil Ein

NetworkInfo: Typ: Mobile [HSPA], Status: DISCONNECTED / DISCONNECTED, Grund: ConnectionDisabled, Extra: (keine), Roaming: false, Failover: false, isAvailable: true, FeatureId: -1, UserDefault: false

Wie Sie sehen, wird isAvailable jedes Mal als true zurückgegeben, und der Status wird nur als Disconnected angezeigt, wenn WiFi aktiviert war.

KLÄRUNG

ich binNICHT Überprüfen Sie, ob mein Telefon derzeit über ein Mobilfunknetz verbunden ist. ichAM versucht festzustellen, ob der Benutzer den Datenzugriff über das Mobilfunknetz aktiviert / deaktiviert hat. Sie können dies aktivieren und deaktivieren, indem Sie zu Einstellungen -> Drahtlos- und Netzwerkeinstellungen -> Mobilfunknetzwerkeinstellungen -> Daten aktiviert gehen

Antworten auf die Frage(13)

Ihre Antwort auf die Frage