Android设备中实现wifi状态监听

本文介绍如何在Android设备上实现WiFi状态监听,包括根据已连接的WiFi信息判断信号强度和运用PING命令检查网络连通性。通过监听WiFi状态信息,可上传至服务器分析设备控制失败原因,确保在智能WiFi设备场景中的稳定运行。
摘要由CSDN通过智能技术生成

一、目标

APP中实现监听Android设备(手机、TV或其他设备)已连接的wifi的状态信息,并定时上传至服务器,用于分析特定时间点设备所在环境中wifi的状态及信号强度。

二、使用场景

多个智能WiFi设备组成的实际场景中,设备偶尔出现了控制失败的情况,需结合场景中当时的wifi状态及信号强度,分析设备控制失败的原因。故希望通过场景中的某个Android设备上安装此APP,监听wifi状态信息,并上传服务器。

前提:装有此APP的Android设备与场景中其他WiFi设备连接的是同一个路由器。

三、可选方案

方案一:根据已连接的wifi信息判断信号强度

根据Android系统提供给开发者的已连接的wifi信息,可以衡量wifi环境的信号强度,相关参数(WifiInfo类的方法)的描述及说明如下:

参数 参数(方法) 描述 说明
mac getBSSID() 获取基本服务集标识符(BSSID)当前的访问点
wifi_name getSSID() 获取wifi的名称
rssi getRssi() 获取wifi接收信号的强度 单位:dBm,取值范围-100~0,绝对值越小信号越强
ip getIpAddress() 获取wifi的IP地址 连接的路由的IP
link_speed getLinkSpeed() 获取当前的链接速度
frequency getFrequency() 获取当前的频率
channel getFrequency() 信道 可通过频率判断当前的信道

另外 信道的作用,可参考下面的链接的详细介绍:
http://cnzhx.net/blog/13-channels-of-wifi/

其中,主要依据getRssi()方法返回的数值衡量wifi信号的强度,-50dBm–0表示信号很好,-70dBm~-50dBm表示信号较差,小于-70dBm表示信号极差,存在连接不上的可能性。
但是,getRssi()方法返回的数值只能用来衡量设备连接到路由器的内网的信号强度,至于是否能访问外网、访问外网的速度需要有新的方案来判断信号强度

方案二:运用“PING”命令检查网络请求是否连通

Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议,回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答),用来检查网络是否通畅或者网络连接速度的命令。

通过分析每次PING命令返回的结果中的相关参数,判断网络请

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值