ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MobileInfo 网络诊断实战:如何获取信号强度、频段、DNS 解析与 WiFi 列表

MobileInfo 网络诊断实战:如何获取信号强度、频段、DNS 解析与 WiFi 列表 MobileInfo 网络诊断实战如何获取信号强度、频段、DNS 解析与 WiFi 列表【免费下载链接】MobileInfo【Android】Hardware Information. For detailed network diagnosis, please refer to【HttpInfo】项目地址: https://gitcode.com/gh_mirrors/mo/MobileInfoMobileInfo是一款 Android 硬件信息收集开源库除了 CPU、内存等设备参数它内置了完整网络诊断能力一行代码即可获取信号强度RSSI、通信频段与基带版本、DNS 解析结果和周边 WiFi 列表帮助开发者快速定位网络慢、断流、定位不到基站等疑难问题。 快速集成一条 Gradle 依赖搞定在项目的build.gradle中添加依赖即可使用无需任何原生配置implementation fairy.easy:mobilehardware:{latest-version}如果本地开发调试可以克隆源码仓库git clone https://gitcode.com/gh_mirrors/mo/MobileInfo核心能力全部封装在 mobilehardware 模块中每个功能一个静态工具类调用方式统一为一个静态方法返回一个 JSON 对象。 获取信号强度RSSI、信号等级与 IP 地址信号质量排查的第一步是搞清楚当前连的是 WiFi 还是蜂窝网络、信号有多强。调用 SignalHelper 中的静态方法JSONObject json SignalHelper.mobGetNetRssi();返回值包含这些关键字段字段含义type当前网络类型WIFI / 4G / 3G / 2Grssi信号强度单位 dBm数值越大信号越好level信号等级0~4 格nIpAddress/nIpAddressIpv6本机 IPv4 / IPv6 地址ssid/bssidWiFi 名称与路由器 MAC 地址linkSpeedWiFi 协商速率Mbpsproxy是否使用代理上网底层实现见 SignalInfo它通过TelephonyManager.getAllCellInfo()遍历 GSM、CDMA、LTE、WCDMA 各类小区读取 dBm 值并对 WiFi 使用-100dBm~0格、-55dBm~满格的线性算法换算信号等级同时自动探测系统代理配置非常适合在用户投诉网络差时做现场取证。 查询频段信息基带版本 Linux 内核判断手机支持哪些通信制式需要查看**基带版本BaseBand**和内核信息。调用 BandHelperJSONObject json BandHelper.mobGetBandInfo();返回字段说明baseBand基带版本通过gsm.version.baseband系统属性读取兜底使用Build.getRadioVersion()innerBand系统内部版本号Incremental / DisplaylinuxBandLinux 内核版本从/proc/version解析detailLinuxBand更详细的内核信息由 C 原生层读取。 经验参考LTE 信号-70dBm以上为良好-85dBm以下建议提示用户移动位置基带版本异常显示 no message常见于刷机机。 DNS 解析测试验证域名是否可达排查能上网但打不开某网站类问题DNS 解析是最直接的验证手段。调用 DnsHelperString result DnsHelper.mobDNS(www.example.com);该方法基于InetAddress.getAllByName()一次性返回目标域名的全部解析 IPIPv4 与 IPv6 都会列出异常时安全降级返回空列表不会阻塞主流程。 扫描 WiFi 列表列出周边所有热点在 WifiHelper 中扫描周边 WiFi 是一个异步回调式 APIWifiHelper.wifiList(new WifiScanListener() { Override public void onResult(JSONObject result) { // 解析 wifiScanResult 数组 } });返回的 JSON 中包含扫描耗时time毫秒和wifiScanResult数组每个热点包含SSID、BSSID、信号强度level与安全特性capabilities四要素实现逻辑见 WifiInfo。⚠️ 注意Android 6.0 及以上系统扫描 WiFi 需要ACCESS_FINE_LOCATION定位权限未授权时会通过回调返回空结果接入时记得先申请权限Demo 中 WifiListFragment 提供了完整示范。 附加获取网卡与网络类型信息配合 NetWorkHelper 的mobGetMobNetWork()还可以拿到网卡名称、连接状态等基础网络参数与上面的信号、DNS、WiFi 数据组合起来就是一份完整的移动端网络诊断报告。✅ 总结诊断需求调用方式所在模块信号强度 / RSSISignalHelper.mobGetNetRssi()signal频段 / 基带 / 内核BandHelper.mobGetBandInfo()bandDNS 域名解析DnsHelper.mobDNS(host)dns周边 WiFi 列表WifiHelper.wifiList(listener)wifilist网络基础信息NetWorkHelper.mobGetMobNetWork()networkMobileInfo 把繁琐的权限判断、多制式兼容、JSON 序列化全部封装在mobilehardware模块里开发者无需关心 CellInfo 各类型的差异分支几分钟即可给自己的 App 加上一个网络自检页面。更多参数说明可查看仓库根目录的 README.md。【免费下载链接】MobileInfo【Android】Hardware Information. For detailed network diagnosis, please refer to【HttpInfo】项目地址: https://gitcode.com/gh_mirrors/mo/MobileInfo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表