Android - 检测用户已离开网络无线范围并关闭 WiFi

Posted

技术标签:

【中文标题】Android - 检测用户已离开网络无线范围并关闭 WiFi【英文标题】:Android - detecting user has left the network wireless range and turning off WiFi 【发布时间】:2015-03-02 10:22:19 【问题描述】:

我一直在为一个潜在的应用程序对这个功能进行一些研究。我想让用户在没有从特定网络收到信号时,或者在特定时间内没有通过连接的网络传输数据时,选择关闭 WiFi(自动)。

我在 WiFiManager 对象中看到了一个很有前途的方法,称为 getScanResults,它返回有关每个网络的一些信息,其中之一是信号强度或 RSSI,所以我假设我可以从这个,并管理当前连接的网络以检测它何时低于某个级别。

不过,我已经对此功能进行了少量研究,一些应用程序似乎是基于使用 GPS/移动数据的三角测量来实现的。这是因为它更准确吗?

我最初的想法是否可行,使用 WiFi 管理器(或任何其他 android 库),您能否根据网络的信号强度(即它低于 0)或网络活动(0 表示 10分钟等)

谢谢!

【问题讨论】:

这是可行的,但是它需要是一个将在后台运行的服务,并且它所要做的就是每 5-10 分钟尝试通过 wifi 连接到网络?这也是我的想法,但没有跟进 :) 是的,GPS 很烦人,而且会浪费很多电池。 好的,我只是让它在一段时间后尝试重新连接。如果它已经连接了怎么办,如果您尝试重新连接会发生什么,您是否可以让它通过检查而不尝试重新连接? 你可以这样做,以便 while(!connected) 你可以搜索并尝试连接:) 可以向 wifi 管理器发出请求以查看状态是否已连接。 【参考方案1】:

可以使用服务来实现上述目标。该服务可以在未连接时有一个计时器,可以向该服务的管理器发出请求,该管理器将从广播接收器获取所有信息。

Services Broadcast Receiver This page can be used tofigure out how to find if wifi is connected, I know it is to do withWifiP2p however it is very similar!

【讨论】:

以上是关于Android - 检测用户已离开网络无线范围并关闭 WiFi的主要内容,如果未能解决你的问题,请参考以下文章

当用户离开家时android禁用wifi

无线路由器接入设备后,设备离开多久会收回IP

安卓手机设置vpn

计算机网络:随机访问介质访问控制之CSMA/CA协议

浏览器判断ios是不是连接wifi

如何通过强制关闭应用程序检测同伴是不是离开视频通话