2011-11-28 44 views
1

我想檢查一下我的蜂窩應用程序是否有簡單的連接。我試過2個不同版本的功能:如何檢查Honeycomb上的網絡可用性?

public boolean networkAvailable() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    return cm.getActiveNetworkInfo().isConnectedOrConnecting(); 
    } 

private boolean networkAvailable(){ 
    ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetwork = connectionManager.getActiveNetworkInfo(); 

    return activeNetwork != null; 
} 

無論是在我的蜂窩平板,這些工作雖然,他們崩潰的地方我試着給他們打電話。有沒有特別的方法來做這個3.2或...我錯過了什麼?

回答

4

這應該工作。你甚至可以區分可用的網絡類型。確保您在清單中聲明瞭以下權限。

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 


public void checkkStatus() 
{ 
final ConnectivityManager connMgr = (ConnectivityManager) 
this.getSystemService(Context.CONNECTIVITY_SERVICE); 

final android.net.NetworkInfo wifi = 
connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

final android.net.NetworkInfo mobile = 
connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

if(wifi.isAvailable()){ 
Toast.makeText(this, "Wifi" , Toast.LENGTH_LONG).show(); 
} 
else if(mobile.isAvailable()){ 
Toast.makeText(this, "Mobile 3G " , Toast.LENGTH_LONG).show(); 
} 
else 
{Toast.makeText(this, "No Network " , Toast.LENGTH_LONG).show();} 
} 
+0

是的,它的效果非常好!感謝百萬人花時間回答我!這是一段非常有用的代碼,我正在保存到我的代碼段! – Eugen

0

試試這個:

public boolean isOnline() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     return cm.getActiveNetworkInfo().isConnectedOrConnecting(); 
    } 
+0

同樣的事情...我使用的是戴爾Streak 7" 。難道這是特殊到我的硬件..? – Eugen

+0

是可能的,但它應該工作... – Erowlin