我正在使用下面的意图过滤器来接收网络连接回调
IntentFilter filter=new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
filter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
filter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
但在下面的观察中,它在第四种情况下失败了(突出显示)。
我尝试过并观察到的场景:
1) 我的手机已打开 Wifi 和移动数据(两者都有有效的互联网连接)--> 获取网络回调
2) 我的手机已关闭 Wifi 并打开移动数据(它们都没有有效的互联网连接)--> 获取网络回拨
3) 关闭其中一台手机的移动数据或 wifi --> 获取回拨
4) 我的手机同时打开了 Wifi 和移动数据(Wifi 没有 有有效的互联网连接和移动数据)--> 没有得到 回调
任何人都可以建议我如何在 Wifi 没有活动的互联网连接时获得回电,无论移动数据是关闭还是开启?
如果您使用网络回调,您可以检查验证标志。 因此,如果已连接,您的 onCapabilityChanged 将会触发,并且如果它被“验证”,它将再次触发,并带有 valid=true 这意味着它具有互联网连接。
override fun onCapabilitiesChanged(
network: Network, networkCapabilities: NetworkCapabilities
) {
val validated = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
}