1

我想知道如何通过 BroadcastReceiver 为任何应用程序处理网络检查,我知道如何在调用我的服务时检查网络可用性,但假设我的网络在事务之间断开连接,我无法处理这种情况。

请提供一些教程链接,我可以在其中学习。

谢谢你。

4

4 回答 4

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; 
    }

或检查这个: -

在 Android 中使用 BroadcastReceiver 检查网络连接

于 2012-12-24T07:14:45.973 回答
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);

这是一个示例代码

于 2012-12-24T07:36:38.493 回答
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;
}
于 2013-01-14T10:57:14.303 回答
0

这是我在 Stackoverflow 上找到的代码(不记得是谁写的)

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权限

于 2012-12-24T07:48:48.147 回答