gpt4 book ai didi

Android 通过移动网络强制 OkHttp 请求

转载 作者:搜寻专家 更新时间:2023-11-01 09:32:35 25 4
gpt4 key购买 nike

是否有一种方法可以强制 OkHttp 通过蜂窝网络进行请求?

我的应用有一些必须通过蜂窝网络(3G、LTE、4G,不是 Wifi)发送的请求。我正在为所有其他网络请求使用 Retrofit 和 OkHttp,所以我也想将它用于这些请求。看起来 ConnectivityManger.registerDefaultNetworkCallback() 可以提供帮助,但它仅支持 API 21+。我想要 API 19+ 的解决方案。

最佳答案

假设 API 21+,

Network network;  // filled in from ConnectivityManager.NetworkCallback
OkHttpClient client = new OkHttpClient.Builder()
.socketFactory(network.getSocketFactory())
.build();

当网络断开和恢复时,您必须重建 OkHttpClient,但这是可行的。您可以通过这种方式明确使用非默认网络(某些设备即使连接到 WiFi 并默认为 WiFi 也可以保持数据连接)。

在 API 19 上,您可以检查 ConnectivityManager.getActiveNetworkInfo() 并在类型为 WiFi 时拒绝操作,然后从为 android.net.conn.CONNECTIVITY_CHANGE 注册的 BroadcastReceiver 再次检查.

关于Android 通过移动网络强制 OkHttp 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45867823/

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