网络调用时 android.net.ConnectivityManager$TooManyRequestsException

2023-11-30

  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

谁能告诉我为什么我会收到此错误?


我尝试通过集成解决这个问题connectivityManager with fragment生命周期方法

这是我的实现。

  1. 创建类属性

    private var connectivityManager:ConnectivityManager? = null
    private val connectionCallback = object : ConnectivityManager.NetworkCallback() {
         override fun onAvailable(network: Network) {//perform your stuff}
         override fun onLost(network: Network) {//perform your stuff}
    }
    
  2. 初始化并注册ConnectivityManager in onCreateView()

    connectivityManager = requireContext().getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    connectivityManager?.registerDefaultNetworkCallback(connectionCallback)
    
  3. unregisterNetworkCallback in onPause()/onStop()/onDestroy()根据您的要求

     connectivityManager?.unregisterNetworkCallback(connectionCallback)
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络调用时 android.net.ConnectivityManager$TooManyRequestsException 的相关文章

随机推荐

  • C非阻塞键盘输入

    我正在尝试用 C 在 Linux 上 编写一个程序 该程序循环直到用户按下某个键 但不需要按键来继续每个循环 有没有一种简单的方法可以做到这一点 我想我可以用select 但这似乎需要很多工作 Alternatively is there
  • iPhone:Airplay SDK有什么用?

    有人可以解释一下什么是Airplay SDK 何时使用它 如何在程序中使用等详细信息 我希望它用于将视频从 iPhone 传输到电视 Thanks 隔空播放软件开发工具包实际上是一个针对iPhone Android Symbian的跨平台游
  • 如何将dict数据写入表格格式

    如何以下表输出格式写入以下数据 字典列表 data date datetime date 2011 2 8 user u xxx status u P date datetime date 2011 2 8 user u yyy statu
  • 从日期计算一年中的第几天

    我需要计算给定日期的天数 一年有 366 天 然而 每个月都有不同的值 我必须分配这些值 有没有比我现在的方法更快的方法 include
  • 如何让 Java 测试容器在 Docker 多阶段构建中工作?

    我有一个类似的问题使用 Maven 在 gitlab 中运行 Docker 测试容器 区别在于 我的脚本不是直接运行 mvn 而是运行 docker 多阶段构建 在 docker 映像内部运行测试 不幸的是 这似乎不适用于 PostgreS
  • 使用 LINQ 连接字符串

    写老派最有效的方法是什么 StringBuilder sb new StringBuilder if strings Count gt 0 foreach string s in strings sb Append s sb Remove
  • 尝试从字符串路径解析 Uri 时为 Null

    我正在用这个FileUtils类来处理Uri public class FileUtils private FileUtils private static final String TAG FileUtils private static
  • 不使用 jQuery 或 Ajax 的链式选择

    我正在使用 XAMPP Lite USB 版本 发现 jQuery 链接选择框脚本不起作用 因为它们依赖于 AJAX 而 AJAX 不适用于我的 XAMPP 我有两个选择框
  • 如何提高 Bootstrap 斑马条纹表的对比度

    我有以下带有斑马条纹的 twitter bootstrap 表 table class table table striped thead tr th Advantage th th Details th tr thead tbody tr
  • 当您从 C# P/Invoke 时,异步过程调用如何处理编组委托?

    我想知道当您在下面的特定情况下通过 P Invoke 将回调委托编组到 DLL 时 是否可能成为本机世界中托管线程管理问题的受害者 请参阅示例代码 这篇关于 Windows 中托管和非托管线程的 MSDN 文章 states 操作系统 Th
  • 减少字典列表的优雅方法?

    我有一个字典列表 每个字典都包含完全相同的键 我想找到每个键的平均值 并且我想知道如何使用reduce 或者如果不可能的话 使用另一种比使用嵌套更优雅的方式 fors 这是列表 accuracy 0 78 f measure 0 81693
  • C# 中什么是好的线程安全单例通用模板模式

    我有以下 C 单例模式 有什么方法可以改进它吗 public class Singleton
  • 从管道读取的 while read 循环后重置变量

    initiate read p Location s to look for bsp files in loc find loc name bsp while read do if f loc bz2 then continue else
  • 使用 C# 在 MySQL 中更新语句

    我一直在为我的工作场所构建一个小型库存系统 并偶然发现了一个我似乎无法修复的错误 private void Update string num string name string quant string location string
  • 静态常量字符串不会被初始化

    我有一些静态常量字符串作为我的 C 类的私有成员 我知道 h 中的声明和 cpp 实践中的定义 和初始化 在类构造函数中 我调用一个使用这些静态字符串的函数 令人惊讶的是 在构造函数中 字符串保持未初始化 空字符串 这会产生问题 有人可以指
  • 关闭可运行的 JOptionPane

    我有这个可运行窗口 EventQueue invokeLater new Runnable Override public void run op new JOptionPane Breaktime JOptionPane WARNING
  • 将日期字符串从破折号转换为正斜杠

    我正在尝试使用以下函数将虚线日期 2013 12 11 转换为 2013 12 11 function convertDate stringdate Internet Explorer does not like dashes in dat
  • Angular 范围函数执行了两次,而它只应该运行一次?

    演示在这里 简单问题 在下面的代码中我只调用该函数isSpecificPage 一次 为什么console log两次 div p Hello p div Angular 监视你的ng hide函数 以便每个摘要循环它都可以查看结果是否发生
  • 跳过带有超时的输入函数

    我正在制作任何程序Python 3 7 我想跳过input特定时间后起作用 我的代码具有类似于以下粗略代码的结构 def functionA skip def functionB skip TIMEOUT 0 5 while True TX
  • 网络调用时 android.net.ConnectivityManager$TooManyRequestsException

    override fun setR2SettingData cmd String status String val requestbuilder NetworkRequest Builder requestbuilder addTrans