我使用普通的可及性工具检查是否有互联网连接。在大多数情况下,它可以工作,但是如果我将WAN电缆插入WiFi-Router,则出于某种原因仍然说它可以找到WiFi的主机。如果我将网址更改为不存在的东西,它将说“互联网是关闭的”。我的问题在哪里?

例子:

I.我有“互联网电缆”未插入,但是通过wifi连接到路由器的电话。我用这条线运行,这是这个域的第一次:

hostReachable = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];

结果=找不到主机(正确)

ii。我在电话中禁用wifi。结果=带有WWAN的主机(正确)

iii。我在电话中启用wifi。结果=带有WiFi的主机。 (不正确,因为路由器不是在线)

有帮助吗?

解决方案

对于Internet检查,我将HTTP请求发送到一个站点(很可能是Google.com),如果它不返回true,则意味着没有互联网。即使连接也很慢,这种情况也可以。这是方法。

- (BOOL) connectedToInternet
{
    NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
return ( URLString != NULL ) ? YES : NO;
}

其他提示

您可能想检查一下 线. 。已知可及性代码仅测试与路由器的连接。现在应该有连接性通知。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top