Android 不´;网络绑定是否适用于jni代码?

Android 不´;网络绑定是否适用于jni代码?,android,go,java-native-interface,wifi,gomobile,Android,Go,Java Native Interface,Wifi,Gomobile,我知道我的用户连接到wifi而没有互联网,所以我将Android进程绑定到手机: private fun bindProcessToCellular() { val req = NetworkRequest.Builder() req.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) req.addTransportType(NetworkCapabilities.TRANSPO

我知道我的用户连接到wifi而没有互联网,所以我将Android进程绑定到手机:

 private fun bindProcessToCellular() {
        val req = NetworkRequest.Builder()
        req.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
        req.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)

        cm.requestNetwork(req.build(), object : ConnectivityManager.NetworkCallback() {
            override fun onAvailable(network: Network) {
                if (cm.bindProcessToNetwork(network)){
                    // YAY, process bound to cellular                    
                }
            }
        })
    }
现在,这在Kotlin/Android上非常有效——互联网请求通过Android/Kotlin的cellular代码按预期运行——但在我的gomobile库中却不行。从Go内部,请求只是超时。如果我断开wifi,所有Go请求都会成功,这让我觉得Go以某种方式解决了错误的网络

我的理解是gomobile在Andoroid JNI接口上运行,我的直觉是,
bindProcessToNetwork
绑定所有东西,包括运行到该应用程序JNI接口的组件

有人知道这里可能发生了什么吗?

可能的解决方法:

当用户第一次连接到此wifi(没有互联网)时,操作系统会询问用户“此wifi没有互联网,您还想连接吗?”如果用户随后取消,则设备实际上仍然连接到该wifi,但流量仍然通过蜂窝网络路由,包括在Go中创建的请求