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://www.pswp.cn/bicheng/96292.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于阿里云部署 RustDesk 自托管服务器

基于阿里云部署 RustDesk 自托管服务器一、背景与需求场景二、什么是 RustDesk?为什么选择自托管?2.1 RustDesk 是什么?2.2 为什么选择自托管?三、环境准备与架构说明四、操作步骤4.1 在阿里云上安装 RustDesk 服务端4.1.1 下载并…

细说分布式ID

针对高并发写,分布式ID是其业务基础,本文从一个面试题细细展开。面试官:1.对于Mysql的InnoDB引擎下,自增ID和UUID作为主键各自有什么优劣,对于一张表的主键你建议使用哪种ID?2.除了UUID是否还了解其他类型的…

2025年大数据专业证书报考指南:专科学历必看的8大选择​

对于大专学历的同学来说,2025年进入大数据行业是一个充满机遇的选择。大数据领域发展迅速,各类证书能够帮助求职者提升专业能力、增强就业竞争力。其中最推荐的是CDA数据分析师,这个证书适应了未来数字化经济和AI发展趋势,难度不高…

Python爬虫实战:研究Axis Artist模块,构建电商数据采集和分析系统

1. 引言 1.1 研究背景与意义 在大数据时代,互联网上蕴藏着海量有价值的信息,这些信息涵盖了社会、经济、科技等各个领域。高效地从互联网获取数据并进行深度分析,对于企业决策、学术研究、市场分析等都具有重要意义。Python 作为一种功能强大的编程语言,凭借其丰富的库支…

突破大语言模型推理瓶颈:深度解析依赖关系与优化策略

突破大语言模型推理瓶颈:深度解析依赖关系与优化策略当ChatGPT需要5秒才能生成一个回答,当企业级大模型每秒只能处理3个用户请求——这些性能瓶颈的背后,隐藏着大语言模型推理计算中复杂的依赖关系网。在大语言模型推理过程中,依赖…

整理了几道前端面试题

1. 若是有两个数组ar1和ar2,求它们的并集和交集,要怎么做? const ar1 [1, 2, 3, 4]; const ar2 [3, 4, 5, 6];一、求并集 (Union) 目标: 把两个数组合并成一个新数组,新数组包含所有出现过的元素,但每个…

Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版

Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版 1 下载Ubuntu镜像 在Ubuntu官网下载Ubuntu24.04 LTS的arm版镜像,这里选择ubuntu-24.04-live-server-arm64.iso,支持arm的似乎没有合适的desktop版本,Server版本默认是不带图…

开源与定制化对比:哪种在线教育系统源码更适合教育培训APP开发?

如今,“在线教育系统源码”已经成为许多教育培训机构、创业者甚至传统学校的高频关键词。无论是打造一款在线教育APP,还是开发企业内部培训平台,源码选择都决定了后续的开发效率、产品体验与商业化潜力。 在实际开发中,常见的源码…

中间件的日志分析

将日志文件access.log复制到kali中进行分析使用命令查看文件中各IP的访问次数,依次分析其行为awk { print $1 } access.log | sort | uniq -c |sort -nr172.16.3.189cat access.log | grep 172.16.3.198行为模式分析使用固定弱密码进行身份验证 几乎所有请求都使用用…

【Big Data】云原生与AI时代的存储基石 Apache Ozone 的技术演进路径

目录 一、Apache Ozone是什么? 二、Ozone的诞生背景 三、Ozone的架构设计 1. 分层架构设计 2. Ozone Manager (OM) 3. Storage Container Manager (SCM) 4. DataNode 5. Raft协议应用 四、Ozone解决的关键问题 1. 元数据管理瓶颈 2. 小文件性能问题 3. …

抖音直播礼物弹幕抓取工具:技术实现与功能解析

基于Python的直播间数据采集技术实践一、项目概述基于Python开发的直播间数据采集方案,采用最新签名算法(dysign)实现稳定连接,实时获取直播间各类互动数据,为直播数据分析和互动应用开发提供技术支持。二、核心功能实时消息监控用户进入提醒…

添加地址页面,可以添加复制粘贴,自动识别地址的功能uniapp实现方式

主要用uni.getClipboardData(OBJECT),更多信息可以到uniapp官网查看以下实现方式 1利用api, 2针对判断优化方案,在线APIhandleConfirm2(){let that this;promisRequest({url: https://wangzc.wang/smAddress,data: {"address": that.…

ESP32 驱动 PWM 舵机为什么必须共地?——从原理到实践全解析

在使用 ESP32 控制 PWM 舵机 的过程中,新手经常遇到一个常见问题:舵机不动、乱动、甚至烧坏芯片。 其中最典型的原因,就是没有正确共地。 很多初学者会疑惑:“外接电池只是给舵机供电,为什么还要把电池的地线接到 ESP32 的 GND 上呢?” 本文将从 信号逻辑、闭合回路、…

细菌基因组genome二代测序数据分析

kraken2去除污染conda create -n kraken2 conda activate kraken2 conda install kraken2 -c bioconda mkdir kraken2_outputkraken2 --db ../../kraken2_db/k2_pluspf_20250402/ --threads 8 --paired 250811_HS67EV0804_R1.fastq.gz 250811_HS67EV0804_R2.fastq.gz --use-nam…

工业网络架构的未来:智慧化工厂中的低延迟与高可靠性设计

1. 引言工业网络正经历从传统有线到无线、从低速到高速的全面升级。某铝箔智慧工厂专注于新能源铝箔的生产,依赖低延迟、高可靠的网络支持实现生产控制与智能管理。本文将探讨某铝箔智慧工厂网络架构设计的关键点及其实施策略。2. 某铝箔智慧工厂的网络挑战多终端接…

Android14 init.rc中on boot阶段操作4

Android14 init.rc中on early-init, init, late-init, early-fs, post-fs阶段详解1 Android14 init.rc的on late-fs, post-fs-data阶段主要操作详解2 Android14 init.rc中启动Zygote详解3 Android14 init.rc中on boot阶段操作4 1 on boot和低内存设备的启动优化 仅在ro.con…

CodeSandbox Desktop:零配置项目启动工具,实现项目环境隔离与Github无缝同步

你有没有过为了跑一个简单的 Demo,花半小时配置环境还失败的经历?比如想测试一个 Vue3 组件,先装 Node.js,结果版本太高和项目依赖不兼容;换低版本又提示 “找不到 python 环境”;好不容易装完依赖&#xf…

人工智能-python-深度学习-经典神经网络AlexNet

AlexNet(详解)——从原理到 PyTorch 实现(含训练示例) 文章目录AlexNet(详解)——从原理到 PyTorch 实现(含训练示例)1. 发展历史与比赛成绩2. AlexNet 的核心思想(一句话…

《sklearn机器学习——指标和评分1》

3个不同的API可供评估模型预测质量: 评估器评分方法:评估器有一个score方法,它给计划解决的问题提供一个初始评估标准。这部分内容不在这里讨论,但会出现在每一个评估器的文件中。 评分参数:使用交叉验证(…

人工智能中的线性代数总结--简单篇

numpy库中的dot函数来计算矩阵和向量的点积def matrix_vector_dot_product(a, b):import numpy as npif (len(a[0]) ! len(b)):return -1# 使用tolist()将结果转换为列表return np.dot(a, b).tolist()原始方法def matrix_vector_dot_product(matrix, vector):if len(matrix[0])…