Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 连接/断开VPN时,ConnectionManager.NetworkCallback调用丢失_Android_Vpn_Android Connectivitymanager - Fatal编程技术网

Android 连接/断开VPN时,ConnectionManager.NetworkCallback调用丢失

Android 连接/断开VPN时,ConnectionManager.NetworkCallback调用丢失,android,vpn,android-connectivitymanager,Android,Vpn,Android Connectivitymanager,我的Android应用程序已在可用和onLost NetworkCallbacks上注册了ConnectivityManager,但在VPN(我正在使用OpenVPN应用程序进行测试)连接或断开连接时不会调用它们。当蜂窝网络连接/断开时,它们确实会被呼叫 在连接VPN之前,allNetworks显示一个网络: 11-17 16:16:22.719 23531 23531 I Baresip:发现网络106具有[传输:蜂窝功能:SUPL&INTERNET&非限制、受信任、非虚拟专用网&验证、非漫游

我的Android应用程序已在可用和onLost NetworkCallbacks上注册了ConnectivityManager,但在VPN(我正在使用OpenVPN应用程序进行测试)连接或断开连接时不会调用它们。当蜂窝网络连接/断开时,它们确实会被呼叫

在连接VPN之前,allNetworks显示一个网络:

11-17 16:16:22.719 23531 23531 I Baresip:发现网络106具有[传输:蜂窝功能:SUPL&INTERNET&非限制、受信任、非虚拟专用网&验证、非漫游、前景、非拥挤、非暂停不需要的:链路带宽>=51200Kbps链路带宽>=102400Kbps说明符:]

连接VPN后,有两个网络:

11-17 16:17:17.464 23531 23531 I Baresip:发现网络106具有[传输:蜂窝能力:SUPL&INTERNET&非受限、可信、非虚拟专用网&验证、非漫游、前景、非拥挤、非暂停不需要的:链路带宽>=51200Kbps链路带宽>=102400Kbps说明符:]

11-17 16:17:17.466 23531 23531 I Baresip:发现网络225具有[传输:VPN功能:互联网和非限制、可信和验证、非漫游和前景、非拥挤和非暂停:]

但是,当VPN网络可用时,我的应用程序不会收到关于它的可用(或任何其他)ConnectionManager通知。同样的问题,当我断开VPN时

这是一个安卓错误还是有其他方法可以得到VPN事件的通知

编辑:我搜索了谷歌的问题追踪器,发现了完全相同的问题:

不幸的是,作者没有提供谷歌要求的所有信息,他们结束了这个问题

我创建了一个新的bug报告,但很可能不会导致任何结果:


因此,欢迎社区提供帮助。

为了在VPN连接更改时调用回调,需要从构建器中删除NetworkCapabilities.NET\u CAPABILITY\u NOT\u VPN:

val builder = NetworkRequest.Builder()
                .removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
默认情况下,包含该功能