【发布时间】:2023-02-15 13:24:32
【问题描述】:
override fun setR2SettingData(cmd: String, status: String) {
val requestbuilder = NetworkRequest.Builder()
requestbuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
connectivityManager.requestNetwork(
requestbuilder.build(),
object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
val builder1 = OkHttpClient.Builder()
builder1.socketFactory(network.socketFactory)
val apiService =
RetrofitInstance.getApiServiceXMLForR2(
Constants.BASE_URL_CAMERA_R2,
builder1
)
trackDisposable(
apiService.requestCameraR2URLForSettingResponse(cmd, status)
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.subscribe()
)
}
})
}
当我们调用 API 时我正在使用此代码我收到以下错误:android.net.ConnectivityManager$TooManyRequestsException
Process: com.rovedashcam.android, PID: 25285
android.net.ConnectivityManager$TooManyRequestsException
at android.net.ConnectivityManager.convertServiceException(ConnectivityManager.java:3378)
at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:3564)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3585)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3661)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3622)
at
connectivityManager.requestNetwork
谁能告诉我为什么会出现此错误?
【问题讨论】:
-
你在哪里调用这个
setR2SettingData()函数? -
@Zain 感谢您快速回答我正在从视图模型中调用
-
多次调用是否能调试记录;您将添加一条日志消息并查看
-
@Zain 我已经调试了它的调用但是它同步多次所以有什么办法可以修复它吗?
-
只需确保它不会在多次调用的生命周期方法中触发,例如 onResume/onStart。
标签: android retrofit android-connectivitymanager