我想知道如何通过 BroadcastReceiver 为任何应用程序处理网络检查,我知道如何在调用我的服务时检查网络可用性,但假设我的网络在事务之间断开连接,我无法处理这种情况。
请提供一些教程链接,我可以在其中学习。
谢谢你。
我想知道如何通过 BroadcastReceiver 为任何应用程序处理网络检查,我知道如何在调用我的服务时检查网络可用性,但假设我的网络在事务之间断开连接,我无法处理这种情况。
请提供一些教程链接,我可以在其中学习。
谢谢你。
用这个 :-
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;
}
或检查这个: -
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);
这是一个示例代码。
你也可以像这样添加 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;
}
这是我在 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();
}
要求internet
和network_state
权限