Android 建立VPN连接将设置网络功能。是否将WIFI传输设置为false?

Android 建立VPN连接将设置网络功能。是否将WIFI传输设置为false?,android,networking,Android,Networking,由于旧的检测wifi连接的方法(getNetworkInfo)在android中已被弃用,我正在尝试将我的应用程序迁移到最新的方法,以下是我目前拥有的方法(在Kotlin中): 在我连接到vpn(在我的三星s8+shadowsocks上)之前,它工作得很好,上面代码中的功能不再具有TRANSPORT_WIFI传输,而是TRANSPORT_vpn。如果我在没有wifi的情况下连接vpn,然后获得wifi连接,isWifiConnected再次返回true(在这种情况下,该功能同时具有TRANSPO

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

在我连接到vpn(在我的三星s8+shadowsocks上)之前,它工作得很好,上面代码中的功能不再具有TRANSPORT_WIFI传输,而是TRANSPORT_vpn。如果我在没有wifi的情况下连接vpn,然后获得wifi连接,isWifiConnected再次返回true(在这种情况下,该功能同时具有TRANSPORT_wifi和TRANSPORT_vpn)

在建立vpn连接时,以前的传输功能似乎都将重置为false,这对我来说似乎是一个bug,为什么拥有一个新功能需要重置旧功能

我希望这只是我的vpn应用程序(shadowsocks)的一个bug,但我在我的pixel 2+shadowsocks上测试了相同的情况,它工作得很好,只要连接了wifi,isWifiConnected就会返回真值,无论是否有vpn


这是三星的一个bug?

到目前为止,该解决方案运行良好:

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

你有什么答案/解决办法吗?我也有同样的问题。以上代码在通过wifi使用VPN时无法检测wifi的存在。@PaulW,是的,我现在使用WifiManager而不是ConnectionManager。请参见下面发布的答案作为示例。
fun isWifiEnabled(context: Context): Boolean {
    val wm = context.getSystemService(Context.WIFI_SERVICE) as WifiManager?
    return wm?.isWifiEnabled ?: false
}