9

Kullanıcının bir aygıt kullanıp kullanmadığını denetleme yolu var mı (bu öncelikle tabletler için geçerlidir)? Yani, akıllı telefonlar yerleşik Wi-Fi ve Hücresel (genellikle) ile birlikte gelir, ancak bazı tabletler sadece Wi-Fi ile birlikte gelir. Uygulamamın hangi tür bir cihazı çalıştırdığını nasıl bilebilirim?Android: Bir aygıt WiFi veya WiFi + Hücresel olup olmadığını nasıl algılayacağını belirleme

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

sorun her iki karşılaştırmalar her zaman hiçbir hücresel sahip bir tablet olsa bile return true şudur:

Ben sonuçları olmadan aşağıdaki çalıştı.

Sadece cihazın bir SIM kart yuvası (hücresel modelli) veya yalnızca WiFi özelliği olan bir modele sahip olup olmadığını bilmem gerekiyor mu?

Şimdiden teşekkürler. İşte

cevap

6

(bugüne kadar çalışır) benim kodundan alıntı: amaç bağlantısı ölçülü olup olmadığını belirlemek için ise

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

Bazı aygıtlarda denedim ve en azından ihtiyacım olan şey için mükemmel çalışıyor gibi görünüyor. Düşünmeye gel, oldukça mantıklı. Yardım ettiğin için teşekkür ederim. –

+2

Geçerli bir 3G bağlantınız varsa ancak veri bağlantısı kapalıysa, bu çalışmaz. – Manish

+0

Şey, belki senin noktanı anlayamıyorum, ama ihtiyacım olan şey, cihazın hücresel veri yeteneklerine sahip olup olmadığını ve buna bağlı olarak, bir veya başka faaliyeti başlatmasıydı. Burada anlattığın ve problemsiz çalıştığını düşündüğüm bir durumda denedim. –

İlgili konular