2012-01-15 78 views
1

設備是否有3g /數據已激活。想知道發生了什麼? 謝謝檢查3G是否連接始終返回false(即使設備已連接)

我的代碼:

public boolean isConnected3G(){ 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo[] networks = cm.getAllNetworkInfo(); 
    for (NetworkInfo ni : networks) 
     if ("MOBILE".equalsIgnoreCase(ni.getTypeName())){ 
      Log.d(TAG,""+ni.isConnected()); 
      if (ni.isConnected()) 
       return true; 
     } 
    return false;  
} 
+0

你試過這段代碼嗎?它返回什麼? – androidnoob 2012-01-16 01:30:58

回答

1

嘗試使用的NetworkInfo NI = cm.getActiveNetworkInfo()而不是cm.getAllNetworkInfo(); 並檢查網絡信息

+0

謝謝,但是當您執行cm.getActiveNetworkInfo()時,我無法使用cm.getActiveNetworkInfo() – znat 2012-01-16 01:15:45

+1

來定位MOBILE,那麼您接收的網絡類型是什麼? 而不是獲取網絡類型的名稱,爲什麼不通過ni.getType()獲得一個類型,並將其與來自ConnectivityManager的常量(即TYPE_MOBILE,TYPE_MOBILE_HIPRI等)進行比較? – 2012-01-16 01:48:03

+0

感謝亞歷克斯,它的工作原理 – znat 2012-01-19 01:09:41

相關問題