我想要监视Android中VPN连接的状态,我遇到了一个问题。我看到,在ICS之前,我可以在"vpn.connectivity“操作上设置一个广播接收器,但是我在ICS或更高版本中没有看到任何类似的东西。
目前,我的最佳选择似乎是轮询一台已知只能通过VPN访问的服务器,但由于许多原因,轮询并不是一个很好的解决方案。有谁有检测Android > 4.0内建VPN客户端连接/断开事件的解决方案吗?这似乎是一个可以作为ConnectivityManager广播包含的特性。
我已经证实,BroadcastReceiver侦听"vpn.connectivity“意图对运行3.2的宏碁有效,但对运行4.4的Nexus 7 2013不起作用。
更新:
我看到ICS中有一个VpnService类。从我阅读的文档来看,这似乎是为了从您的应用程序中创建一个VPN。如果系统中的客户端足够的话,我不想维护VPN客户端。我可能会接受使用这种类型的类作为对系统中配置的VPN的传递,但是我的直觉告诉我,这是不可能的,因为操作系统似乎已经锁定了系统VPN配置和事件的可见性。
发布于 2018-01-05 03:10:03
我找到了一种适用于安卓5.0+的方法,使用它的新API。
val request = NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_VPN)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
.build()
connectivityManager.registerNetworkCallback(request, yourListener)https://stackoverflow.com/questions/21122751
复制相似问题