gpt4 book ai didi

java - 如何在 Android 上选择/强制使用移动数据(或 WiFi)进行网络通话?

转载 作者:行者123 更新时间:2023-12-02 09:43:09 32 4
gpt4 key购买 nike

我有一个疯狂的用户案例,需要仅通过移动数据 (SIM) 调用某些 REST 服务。我们想通过 wifi 发送其余数据。

Android 上是否可以强制通过哪种网络发送数据?

是否可以在同一个应用程序和同一个 session 中通过移动数据发送一些数据,并通过 wifi 发送其他数据?

此外,测试调用是否通过正确的网络类型发送的最佳方法是什么?

最佳答案

我的使用:

@TargetApi(21)
private fun getMobileNetWork() {
connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val builder = NetworkRequest.Builder()
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)//TRANSPORT_WIFI
val build = builder.build()
connectivityManager!!.requestNetwork(build, networkCallback)
}


val networkCallback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
//Use the network to do your thing
}

override fun onLost(network: Network?) {
super.onLost(network)
}
override fun onUnavailable() {
super.onUnavailable()
}
}

okhttp3中的网络使用情况:

    val builder = OkHttpClient.Builder()
.connectTimeout(15L, TimeUnit.SECONDS)
.readTimeout(20L, TimeUnit.SECONDS)
.writeTimeout(15L, TimeUnit.SECONDS)
.socketFactory(network.socketFactory)
.dns {
network.getAllByName(it).asList()
}

关于java - 如何在 Android 上选择/强制使用移动数据(或 WiFi)进行网络通话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893540/

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