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