2012-12-24 155 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; 
}