java安卓:互联网连接变化监听器
我已经有了监听连接更改的代码-
public class NetworkStateReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
Log.d("app","Network connectivity change");
if(intent.getExtras() != null)
{
NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED)
{
Log.i("app", "Network " + ni.getTypeName() + " connected");
}
}
if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE))
{
Log.d("app", "There's no network connectivity");
}
}
}
我使用以下代码检查Internet连接-Internet Check
但问题是,如果网络突然失去互联网连接而没有任何连接改变,那么这段代码是无用的。有没有办法创建广播接收器侦听器以更改Internet连接?我有一个web应用程序,突然的互联网连接变化可能会导致问题
# 1 楼答案
试试这个
还有广播接收机
别忘了把这个放进你的AndroidManifest里。xml
希望这能帮你干杯
# 2 楼答案
下面是使用
registerDefaultNetworkCallback
(和registerNetworkCallback
for API<;24)的Java代码:# 3 楼答案
在api 28+中,ConnectivityAction是deprecated。相反,只要支持api 24+,就可以使用
registerDefaultNetworkCallback
在科特林:
# 4 楼答案
这应该是有效的:
# 5 楼答案
我将此方法用作连接侦听器。为Lolipop+工作,Android JAVA语言
并将此权限添加到Android清单中。xml
# 6 楼答案
更新:
您需要通过
registerReceiver()
方法注册接收器: