wifi连接时获取回调,无互联网状态Android?

问题描述 投票:0回答:1

我正在使用下面的意图过滤器来接收网络连接回调

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 没有活动的互联网连接时获得回电,无论移动数据是关闭还是开启?

android networking intentfilter
1个回答
0
投票

如果您使用网络回调,您可以检查验证标志。 因此,如果已连接,您的 onCapabilityChanged 将会触发,并且如果它被“验证”,它将再次触发,并带有 valid=true 这意味着它具有互联网连接。

override fun onCapabilitiesChanged(
            network: Network, networkCapabilities: NetworkCapabilities
        ) {
val validated = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
}
© www.soinside.com 2019 - 2024. All rights reserved.