9

Czy istnieje sposób sprawdzenia, czy użytkownik używa urządzenia (dotyczy to głównie tabletów) z połączeniem komórkowym ?. Oznacza to, że smartfony mają wbudowaną Wi-Fi i komórkową (ogólnie), ale niektóre tablety mają tylko Wi-Fi. Skąd mogę wiedzieć, na jakim urządzeniu działa moja aplikacja?Android: jak wykryć, czy urządzenie jest WiFi czy Wi-Fi + komórkowe

Próbowałem następujących bez rezultatów:

cell = ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_MOBILE); 
wifi = ConnectivityManager.isNetworkTypeValid(ConnectivityManager.TYPE_WIFI); 

if (cell) tv_1.setText("The tablet has cellular"); 
    else tv_1.setText("The tablet does not have cellular"); 
if (wifi) tv_2.setText("The tablet has wifi"); 
    else tv_2.setText("The tablet does not have wifi"); 

Problemem jest to, że oba porównania zawsze zwracają prawdę, nawet jeśli jest to tabletka, która nie ma komórkowej.

Muszę tylko wiedzieć, czy urządzenie ma gniazdo kart SIM (model z telefonem komórkowym), czy jest to model, który ma tylko WiFi, czy to możliwe?

Z góry dziękuję.

Odpowiedz

6

Oto fragment mojego kodu (działa do tej pory):

ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
NetworkInfo mEthernet = connManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET); 
NetworkInfo m3G = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
if (mWifi!=null) isOnWifi = mWifi.isConnected(); 
if (mEthernet!=null) isOnEthernet = mEthernet.isConnected(); 
if (m3G!=null) is3G = m3G.isConnected(); 
+0

Próbowałem go na niektórych urządzeniach i wydaje się działać idealnie, przynajmniej na to, czego potrzebowałem. Przyjdźcie myśleć, jest to całkiem logiczne. Dzięki za pomoc. –

+2

Nie będzie działać, jeśli masz poprawne połączenie 3G, ale połączenie transmisji danych jest wyłączone. – Manish

+0

No cóż, może nie rozumiem twojego punktu widzenia, ale potrzebowałem wykrycia, czy urządzenie ma komórkowe możliwości danych, czy też, w zależności od tego, rozpocząć jedno lub drugie działanie. Próbowałem go w sytuacji, którą opisujesz tutaj i wydaje się działać bez problemu. –

Powiązane problemy