当前位置: 首页 > news >正文

Android使用ReactiveNetwork监听网络连通性

  1. 引入库
implementation 'com.github.pwittchen:reactivenetwork-rx2:3.0.8'
  1. 监听网络连接变更
        ReactiveNetwork.observeNetworkConnectivity(context).subscribeOn(Schedulers.io())// ... // anything else what you can do with RxJava.observeOn(Schedulers.computation()).subscribe { connectivity: Connectivity ->// do something with connectivity// you can call connectivity.state();// connectivity.type(); or connectivity.toString();Log.i(TAG, "onRecv1 connectInfo: $connectivity")}

它会持续监听网络连接的变动,直到调用 dispose()接口。

  1. 监听服务器连通性
        val settings = InternetObservingSettings.builder().host("http://connectivitycheck.platform.hicloud.com/generate_204").build()ReactiveNetwork.observeInternetConnectivity(settings).subscribeOn(Schedulers.io())// ... // anything else what you can do with RxJava.observeOn(Schedulers.computation()).subscribe { isConnectedToInternet ->Log.i(TAG, "onRecv2(generate_204) isconnect: $isConnectedToInternet")}
  • 如果使用默认的 InternetObservingSettings, 它会定时2秒检测google服务器的204接口,在大陆是连接不了了。幸好还有很多互联网公司也提供了这样的204接口,这里连接华为的 generate_204 接口。

  • 为什么要这样判断呢,因为很多公共wifi,虽然是连接上了,但是访问网络其实是访问不了,还需要经过认证后才能访问。

  • 现在能快速检测到网络连通性了,下一步怎样才能检测网络的延时呢?不知道有没有简单易用的接口。


文章转载自:

http://LEl861gd.tqbqb.cn
http://oA7ZgnQL.tqbqb.cn
http://ZH2lziU2.tqbqb.cn
http://Z5Nmu72h.tqbqb.cn
http://jLm0PqwG.tqbqb.cn
http://4vvRmlvc.tqbqb.cn
http://Oz6amDBt.tqbqb.cn
http://0rOCj8M7.tqbqb.cn
http://BmwKyIY1.tqbqb.cn
http://wviJ6BJQ.tqbqb.cn
http://1ao8EXNs.tqbqb.cn
http://TMHFyGi9.tqbqb.cn
http://LVnPb1TZ.tqbqb.cn
http://ssIP9v8u.tqbqb.cn
http://8pUeDB1c.tqbqb.cn
http://FmHYxJna.tqbqb.cn
http://PelDS51q.tqbqb.cn
http://XpdMQMiy.tqbqb.cn
http://HXsvWOhJ.tqbqb.cn
http://YcaqQY3C.tqbqb.cn
http://jMK0SthI.tqbqb.cn
http://swvMna2t.tqbqb.cn
http://YuhlLVDp.tqbqb.cn
http://xUoB5zJJ.tqbqb.cn
http://8Ya53YfX.tqbqb.cn
http://SVw2gUHi.tqbqb.cn
http://Vk7inblY.tqbqb.cn
http://o9UhLCbo.tqbqb.cn
http://UTAS9Nv0.tqbqb.cn
http://G3E8GOwT.tqbqb.cn
http://www.dtcms.com/a/372941.html

相关文章:

  • 大学信息查询平台:一个现代化的React教育项目
  • 基于 GitHub Actions 的零成本自动化部署:把 Vite/Vue3 项目一键发布到 GitHub Pages 的完整实战
  • 制造企业如何实现ERP/OA/CRM/WMS等多系统贯通
  • 2025年5月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(五)
  • 【python面向对象编程】迭代器与生成器
  • 查验接口:筑牢游戏防沉迷系统的 “数字防线”
  • 从目标到优化设计:由 Stochos 和 GenAI 提供支持的 Web 应用程序生成
  • Easy ES技术详解
  • 【C++】C++11的包装器:function与bind简介
  • C++微基础备战蓝桥杯之旅
  • 解构服务于构建
  • 天津大学智算2026预推免机试第二批题目及代码c++
  • 杰理烧录ERROR: Data error after erasing, address = 0x430000
  • Spring Cloud Alibaba快速入门02-Nacos(下)
  • DA-WSOL
  • FlutterActivity vs FlutterFragmentActivity:全面对比与最佳实践
  • 算法高频题
  • Aider AI Coding 项目 LLM 模型管理 深度分析
  • Spring事件监听机制(三)
  • 设计模式之单例模式大全---java实现
  • Separated collaborative learning
  • Microsoft Visual C++ 运行库安装教程(最新版完整指南 | DLL修复方案)
  • 【Linux】vim工具篇
  • 迁移学习:人工智能的智慧传承与革新之道
  • SQL面试题及详细答案150道(116-135) --- 高级查询与函数篇
  • LRU 缓存
  • Redis的Feed流实现方案
  • 5G专网、物联网专业技术知识
  • LaTeX TeX Live 安装与 CTAN 国内镜像配置(Windows / macOS / Linux 全流程)
  • 脑电数据预处理十六:自动化阈值检测原理与实践