2012-12-24 214 views
1

我想知道如何處理網絡檢查BroadcastReceiver的任何應用程序,我知道如何檢查網絡可用性,當我打電話給我的服務,但假設我的網絡斷開交易之間我無法處理這種情況。網絡檢查android

請提供一些教程鏈接,我也可以學習這一點。

謝謝。

+0

你有什麼嘗試? –

回答

3
BroadcastReceiver networkStateReceiver = new BroadcastReceiver() { 

@Override 
public void onReceive(Context context, Intent intent) { 
    Log.w("Network Listener", "Network Type Changed"); 
} 
}; 

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);   
registerReceiver(networkStateReceiver, filter); 

這是一個example code

3

使用此: -

public boolean isNetworkAvailable() 
    { 
     ConnectivityManager cmanager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInformation= cmanager .getActiveNetworkInfo(); 
     if (netInformation!= null && netInformation.isAvailable() && netInformation.isConnected()) 
     { 
      return true; 
     } 
     return false; 
    } 

或檢查: -

Checking the Networking Connectivity using BroadcastReceiver in Android

0

這是代碼,我發現這裏#2(不記得是誰寫的)

public static boolean isConnected(Context context) { 
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo info = cm.getActiveNetworkInfo(); 
    if (info == null) { 
     return false; 
    } 
    return info.isConnected(); 
} 

需要internetnetwork_state權限

+0

第一個答案也是一樣的,這段代碼可以檢查網絡可用性,正如我在我的問題中提到的,我知道如何檢查網絡可用性,我上面發佈的答案適合我。 – Puneet

1

ü還可以添加info.isConnectedOrConnecting像這樣()選項。 。

public static boolean checkConn(Context ctx) 
{ 
    ConnectivityManager conMgr = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo info = conMgr.getActiveNetworkInfo(); 
    if (info == null || !info.isConnected() || !info.isAvailable()||!info.isConnectedOrConnecting()){ 
     Toast.makeText(ctx, "Internet is not available", Toast.LENGTH_SHORT).show(); 
     return false; 
    } 
    return true; 
}