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