Ali*_*Ali 5 vpn android android-intent
如果流量通过VPN而不使用意图连接到VPNService,如何以编程方式检测.有系统调用吗?
这有效:
private boolean checkVPN() {
ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getNetworkInfo(ConnectivityManager.TYPE_VPN).isConnectedOrConnecting();
}
Run Code Online (Sandbox Code Playgroud)
Android 操作系统知道 VPN 连接何时处于活动状态(因为它在 VPN 连接期间在状态栏中显示一个图标),但没有公共 API 方法(将出现在 VpnService 上)来检查活动状态联系。
出现两种解决方案。如果您正在处理已知网络拓扑的特定情况,请运行“ping”来查看特定 IP 地址是否可用 - 使用System.exec
。ping 命令存在于带有库存 ROM 的 Android 设备上,我将其用作解决方案的一部分,以提供数据连接状态的更精细视图(IP 地址未分配、IP 地址已分配但无法访问)互联网,可以访问互联网)
更好的解决方案是运行跟踪路由并分析输出。我还没有检查traceroute是否存在于带有库存ROM的Android设备上,我稍后会用更完整的信息编辑这个答案。
归档时间: |
|
查看次数: |
5102 次 |
最近记录: |