gpt4 book ai didi

android - 当 VPN 连接/断开连接时,ConnectivityManager.NetworkCallback 调用丢失

转载 作者:行者123 更新时间:2023-12-04 23:55:03 25 4
gpt4 key购买 nike

我的 Android 应用程序已注册 ConnectivityManager onAvailable 和 onLost NetworkCallbacks,但在连接或断开 VPN(我正在使用 OpenVPN 应用程序测试)时不会调用它们。当蜂窝网络连接/断开时,它们会被调用。
在我连接 VPN 之前,allNetworks 显示一个网络:
11-17 16:16:22.719 23531 23531 I Baresip : Found network 106 with [ Transports: CELLULAR Capabilities: 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,具有[传输:蜂窝功能:supl&internet&notter_restriction&troped&troped&not_vpn&not_roming&not_roaming&foregroun&foreground&not_sundorged&not_suspeSted&not_suspeDEND&linkupbandwid> 51200kbbbbbandwid> 51200KBBBBBBBBAND> 51200KBBBBBEN> 51200KBBBBBEN> 51200KBBBBBBENT:
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 网络可用时,我的应用程序不会收到关于它的 onAvailable(或任何其他)ConnectivityManager 通知。同样的问题,当我断开 VPN 时。
这是 Android 错误还是有其他方法可以获取有关 VPN 事件的通知?
编辑:我搜索了谷歌的问题跟踪器,发现完全相同的问题:
https://issuetracker.google.com/issues/138035152
不幸的是,作者没有提供谷歌要求的所有信息,他们关闭了这个问题。
我创建了一个新的错误报告,但很可能它不会导致任何地方:
https://issuetracker.google.com/issues/173534857
因此,欢迎来自社区的帮助。

最佳答案

为了在 VPN 连接更改时也调用回调,需要从构建器中删除 NetworkCapabilities.NET_CAPABILITY_NOT_VPN:

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

关于android - 当 VPN 连接/断开连接时,ConnectivityManager.NetworkCallback 调用丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64877331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com