9

Gibt es eine Möglichkeit zu überprüfen, ob der Benutzer ein Gerät (dies gilt in erster Linie für Tablets) mit Mobilfunkverbindung? Das heißt, das Smartphone kommt mit eingebautem Wi-Fi und Cellular (allgemein), aber einige Tablets kommen nur mit Wi-Fi. Wie kann ich feststellen, auf welcher Art von Gerät meine Anwendung ausgeführt wird?Android: Wie erkennt man, ob es sich bei einem Gerät um WiFi oder WLAN handelt? Cellular

habe ich versucht, die folgende ergebnislos:

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"); 

Das Problem ist, dass beide Vergleiche immer true zurück, auch wenn es sich um eine Tablette ist, die keine zelluläre hat.

Ich muss nur wissen, ob das Gerät einen SIM-Kartensteckplatz (Modell mit Handy) hat oder es ist ein Modell, das nur WLAN hat, ist das möglich?

Vielen Dank im Voraus.

Antwort

6

Hier Auszug aus meinem Code (es funktioniert bisher):

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

Ich habe es auf einigen Geräten versucht und scheint perfekt zu funktionieren, zumindest für das, was ich brauchte. Denk nach, es ist logisch. Danke für Ihre Hilfe. –

+2

Dies funktioniert nicht, wenn Sie eine gültige 3G-Verbindung haben, aber die Datenverbindung deaktiviert ist. – Manish

+0

Nun, vielleicht verstehe ich Ihren Punkt nicht, aber was ich brauchte, war festzustellen, ob das Gerät zellulare Datenfähigkeiten hat oder nicht, und abhängig davon, starten Sie die eine oder andere Aktivität. Ich habe es in der Situation versucht, die Sie hier beschreiben und scheint problemlos zu funktionieren. –

Verwandte Themen