Jak sprawdzić, czy „Mobilne dane sieciowe” są włączone lub wyłączone (nawet w przypadku połączenia WiFi)?

Mam aplikację, której chcę używać, aby uzyskać raport o stanie połączenia z zapytania zdalnego.

Chcę wiedzieć, czy Wi-Fi jest podłączone i czy dostęp do danych jest włączony przez sieć komórkową.

Jeśli WiFi wychodzi poza zakres, chcę wiedzieć, czy mogę polegać na sieci komórkowej.

Problem polega na tym, że włączone dane są zawsze zwracane jako prawdziwe, gdy jestem połączony przez WiFi, i mogę tylko prawidłowo wysłać zapytanie do sieci komórkowej, gdy nie jest połączone przez WiFi.

wszystkie odpowiedzi, które widziałem sugerują odpytywanie, aby zobaczyć, jakie jest obecne połączenie, ale chcę wiedzieć, czy sieć komórkowa jest dostępna, jeśli jej potrzebuję, nawet jeśli obecnie mogę być podłączony przez WiFi.

Czy istnieje informacja, czy dane sieci komórkowej są włączone bez odpytywania, aby sprawdzić, czy są one połączone?

EDYTOWAĆ

Więc po połączeniu przez WiFi Jeśli przejdę do ustawień i odznaczę opcję „Data Enabled”, a następnie w mojej aplikacji to zrobię:

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

mob_avail jest zwracany jako „prawda”, ale wyłączyłem dane sieci komórkowej, więc spodziewam się, że będzie „fałszywy”

Jeśli wyłączę WiFi, nie ma (słusznie) żadnego połączenia, ponieważ wyłączyłem dane sieci komórkowej.

jak więc sprawdzić, czy dane sieci komórkowej są włączone, gdy jestem połączony przez WiFi?

AKTUALIZACJA

Spojrzałem na getAllNetworkInfo (), jak zasugerowałem w komentarzach ss1271

Wydałem informację zwróconą o sieci komórkowej w następujących 3 warunkach

WiFi wyłączone - dane mobilne włączone

WiFi On - Mobile Data off

WiFi On - Mobile Data on

i uzyskał następujące wyniki:

Z WiFi OFF:

mobile [HSUPA], stan: CONNECTED / CONNECTED, powód: nieznany, extra: internet, roaming: false, failover: false, isAvailable: true, featureId: -1, userDefault: false

Z WiFi On / Mobile OFF

NetworkInfo: type: mobile [HSUPA], stan: DISCONNECTED / DISCONNECTED, powód: connectionDisabled, extra: (brak), roaming: false, failover: false, isAvailable: true, featureId: -1, userDefault: false

Z WiFi On / Mobile On

NetworkInfo: typ: mobile [HSPA], stan: DISCONNECTED / DISCONNECTED, powód: connectionDisabled, extra: (brak), roaming: false, failover: false, isAvailable: true, featureId: -1, userDefault: false

Tak więc, jak widzisz, jest za każdym razem zwracana wartość true, a stan pokazywany jest tylko jako Odłączony, gdy WiFi miało wpływ.

WYJAŚNIENIE

jestemNIE chce sprawdzić, czy mój telefon jest obecnie podłączony przez sieć komórkową. jaRANO próba ustalenia, czy użytkownik włączył / wyłączył dostęp do danych przez sieć komórkową. Mogą je włączyć i wyłączyć, wybierając Ustawienia -> Bezprzewodowe i Ustawienia sieciowe -> Ustawienia sieci komórkowej -> Włączone dane