oynix

于无声处听惊雷,于无色处见繁花

Android之检查知否开了代理

最近有个新需求,用户如果开启了代理,就不让进入,在此记录一下检查方式。

简单说,就是通过ConnectivityManager获取到设备当前的所有网络连接,如果其中包含TRANSPORT_VPN类型的连接,则认为开启了代理。

代码如下

1
2
3
4
5
6
7
8
9
10
11
fun checkProxyOpen(ctx: Context): Boolean {
val manager = ctx.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
manager.allNetworks.toList().forEach { network ->
val cap = manager.getNetworkCapabilities(network)
val vpnTransport = cap?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) ?: false
if (vpnTransport) {
return true
}
}
return false
}
------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2021/09/10f3f5637578/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道