我的Android应用程序已经注册了ConnectivityManager的onAvailable和onLost NetworkCallbacks,但在连接或断开VPN(我正在使用OpenVPN应用程序进行测试)时不会调用它们。当蜂窝网络连接/断开时,它们确实被调用了。
在连接VPN之前,allNetworks显示一个网络:
11-17 16:16:22.719 23531 23531 I Baresip:找到带有[传输:CELLULAR功能的106网络:SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED Unwanted:LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps Specifier:<6>]
在我连接VPN之后,有两个网络:
我创建了一个新的错误报告,但很可能不会有任何进展:
在连接VPN之前,allNetworks显示一个网络:
11-17 16:16:22.719 23531 23531 I Baresip:找到带有[传输:CELLULAR功能的106网络:SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED Unwanted:LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps Specifier:<6>]
在我连接VPN之后,有两个网络:
11-17 16:17:17.464 23531 23531 I Baresip : 发现网络106,具有[传输方式:CELLULAR,功能:SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED,不需要的:LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps Specifier: <6>]
11-17 16:17:17.466 23531 23531 I Baresip : 发现网络225,具有[传输方式:VPN,功能:INTERNET&NOT_RESTRICTED&TRUSTED&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED,不需要的:]
但是当VPN网络可用时,我的应用程序没有收到任何ConnectivityManager通知,包括onAvailable。断开VPN时也是同样的问题。
这是Android的bug还是有其他方法可以得到有关VPN事件的通知?
编辑:我在谷歌的问题跟踪器中搜索并找到了完全相同的问题:
https://issuetracker.google.com/issues/138035152
很遗憾,作者没有提供Google所要求的所有信息,因此他们关闭了这个问题。我创建了一个新的错误报告,但很可能不会有任何进展:
https://issuetracker.google.com/issues/173534857
社区的帮助将不胜感激。