首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当连接/断开虚拟专用网时,ConnectivityManager.NetworkCallback呼叫丢失

当连接/断开虚拟专用网时,ConnectivityManager.NetworkCallback呼叫丢失
EN

Stack Overflow用户
提问于 2020-11-17 22:37:29
回答 1查看 323关注 0票数 2

我的安卓应用程序已经注册了ConnectivityManager onAvailable和onLost NetworkCallbacks,但当VPN (我正在用OpenVPN应用程序测试)连接或断开连接时,它们不会被调用。当蜂窝网络连接/断开时,它们确实会被调用。

在我连接虚拟专用网之前,allNetworks显示了一个网络:

11-17 16:16: 23531 23531 I Baresip : Found network 22.719 with Transports:蜂窝功能: SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED不想要的: LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps规范:<6>

连接VPN后,有两个网络:

11-17 16:17: 23531 23531 I Baresip : Found network 17.464 with Transports:蜂窝功能: SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED不想要的: LinkUpBandwidth>=51200Kbps LinkDnBandwidth>=102400Kbps规范:<6>

11-17 16:17: 23531 23531 I Baresip : Found network 225 with Transports: VPN Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED Unwanted:

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

这是Android的bug吗?还是有其他方式可以通知VPN事件?

编辑:我搜索了Google的问题跟踪器,发现了完全相同的问题:

https://issuetracker.google.com/issues/138035152

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

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

https://issuetracker.google.com/issues/173534857

因此,欢迎来自社区的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-12-03 16:29:07

为了在VPN连接发生变化时调用回调,需要从构建器中删除NetworkCapabilities.NET_CAPABILITY_NOT_VPN:

代码语言:javascript
复制
val builder = NetworkRequest.Builder()
                .removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)

默认情况下,包含该功能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64877331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档