如何验证WiFi AP或单元具有Internet



我正在寻找最好的技术来通过WiFi或单元格验证Internet。假设您已连接到某些AP,但是如果存在Internet,您现在不现在。

今天,我有2个选项使用HttpURLConnection

  • 从CDN服务器下载文件
  • 将请求发送到像Google.com这样的信任网页并获得响应200。

其他任何方法?

所有建议都将不胜感激。

在某个级别上,'访问Internet端点的能力'等同于"拥有Internet访问"。您可以考虑一些算法:

for (Endpoint site : theEntireInternet) {
    if (can connect to site) return true;
}
return false;

将最终建立连接性。换句话说,能够连接到任何一个站点是足够的积极证据,但是从理论上讲,您需要列举每个站点以证明非连接性。实际上,检查一些主要站点显然就足够了。否则(没有关于网络,ISP等的某种元信息;这是不可用的),除了...连接到Internet之外,没有办法最终证明" Internet"连接。

当然,当您评论时,检查各种基于Internet的应用程序也不会受到伤害;这只是等效技术的另一种形式。

请参阅电话管理器,并且是getDatasate()方法,它具有四个状态

DATA_DISCONNECTED
DATA_CONNECTING
DATA_CONNECTED
DATA_SUSPENDED

您可以获取电话管理器的实例 -

 TelephonyManager tm = (TelephonyManager)getSystemService(Telephony_Service); 

这里是:

在单元网络上查看数据连接的状态

对于WiFi,我将使用此公共类Wifiinfo。从那里您可以使用getipAddress()或getDetailedStateof(...)希望这有用。

最新更新