gpt4 book ai didi

android - 建立 VPN 连接会将 NetworkCapabilities.TRANSPORT_WIFI 设置为 false?

转载 作者:行者123 更新时间:2023-12-05 00:04:54 24 4
gpt4 key购买 nike

由于检测 wifi 连接的旧方法 (getNetworkInfo) 在 android 中已被弃用,我正在尝试将我的应用程序迁移到最新的方式,下面是我现在拥有的(在 Kotlin 中):

fun isWifiConnected(context: Context): Boolean {
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
cm?.activeNetwork?.let { network ->
cm.getNetworkCapabilities(network)?.let { capability ->
return capability.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
}
}
return false
}

在我连接 vpn(在我的 samsung s8 + shadowsocks 上)之前它运行良好,上面代码中的能力不再有TRANSPORT_WIFI传输,但是TRANSPORT_VPN 代替。如果我在没有 wifi 的情况下连接 vpn 然后连接 wifi,isWifiConnected 再次返回 true(capabilityTRANSPORT_WIFITRANSPORT_VPN 在这种情况下)。

似乎在建立 vpn 连接时,以前的传输能力将全部重置为 false,这对我来说听起来像是一个错误,为什么有一个新的能力需要重置旧的能力?

我希望这只是我的 vpn 应用程序 (shadowsocks) 的一个错误,但我在我的像素 2 + shadowsocks 上测试了相同的情况,效果很好,isWifiConnected 返回 true 不管有没有vpn,只要有wifi 就可以了。

所以这是三星的漏洞?

最佳答案

该解决方案目前运行良好:

fun isWifiEnabled(context: Context): Boolean {
val wm = context.getSystemService(Context.WIFI_SERVICE) as WifiManager?
return wm?.isWifiEnabled ?: false
}

关于android - 建立 VPN 连接会将 NetworkCapabilities.TRANSPORT_WIFI 设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61480674/

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