- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 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/
大家好,我需要验证我的设备当前是否连接到互联网,所以我编写了这个类,它使用 ConnectivityManager 来检查: public boolean checkInternetConnectio
在此处显示的代码中出现空指针问题。通常,空指针是一种简单易行的修复方法,但在这种情况下,我完全迷失了原因。 空指针在这一行: dataConnectionStatus = connManager.ge
我是 Android 的新手,当我提供以下代码 fragment 时,我的 Android 应用程序崩溃了。 ConnectivityManager manager = (ConnectivityMa
我正在使用 ConnectivityManager.NetworkCallback 在互联网可用或丢失时获取回调。以下是确定我需要收听哪种传输类型的配置。 manager.registerNetwor
我注册了一个广播来获取ConnectivityManager.CONNECTIVITY_ACTION,代码是: registerReceiver(mNetwrokBroadcastReceiver,
我正在询问来自 android 设备的连接类型,但我不知道什么类型是 wimax。 ConnectivityManager conMgr = (ConnectivityManager) context
Intent intent = new Intent().setAction(ConnectivityManager.CONNECTIVITY_ACTION); sendBroadcast(inten
我总是得到一个空指针异常,即使我在这段代码上连接到 wifi 也是如此: ConnectivityManager connectivityManager = (ConnectivityM
在Android N中,官网提到“Apps targeting Android N do not receive CONNECTIVITY_ACTION broadcasts”。并且还提到 JobSc
所以,我有这个方法可以让我知道用户是否有 Activity 的互联网连接。它运作良好。但是,leak canary 已识别出与 connectivityManager 相关的内存泄漏。据我所知,我目前
我有想要读取网络连接状态的简单代码。我已经向 AndroidManifest.xml 添加了权限: 我尝试访问网络状态的代码: ConnectivityManager conmgr = (C
我偶尔会在连接管理器中看到空指针异常。从 Intent 服务中,我通过 isOnWIFI(this) 检查网络状态。异常发生在 cm.getActiveNetworkInfo() 行。这很奇怪,因为我
我们使用 Android ConnectivityManager 来监听我们应用程序内部的互联网连接变化,如下所示。 class MainActivity : AppCompatActivity()
我正在注册接收器以捕获 ConnectivityManager.CONNECTIVITY_ACTION 代码,即我没有在应用程序 list 中注册它。一切正常,但我注意到我在注册接收器后立即自动收到广
我正在创建一个 BroadcastReceiver 来监听 Wi-Fi 连接变化: registerReceiver(new BroadcastReceiver() { @Override
需要知道getActiveNetwork返回什么样的值。我使用的代码是: ConnectivityManager connectivityManager = (ConnectivityMan
在Android N中,官网上提到“针对Android N的应用程序不接收CONNECTIVITY_ACTION广播”。并且还提到可以使用 JobScheduler 作为替代方案。但是 JobSche
我有一个返回设备连接状态的功能,它一直工作正常,除非设备连接到 VPN,当网络不可用时它会给出误报 fun isConnected(): Boolean { var resul
我是 Android 世界的新手(作为用户,也是作为开发人员),并且我的 Android 应用程序在执行 myWebView.loadUrl("https://www.google.com") 时崩溃
有人看过 jsharkey 的 battery life google io presentation ? 如何切换模拟器中 ConnectivityManager.getBackgroundData
我是一名优秀的程序员,十分优秀!