0

我从 StackOverflow 的另一篇文章中获取并修改的代码(编译时没有错误):

NSError *error; 
NSArray *ifs = (NSArray *)CFBridgingRelease(CNCopySupportedInterfaces());
NSLog(@"%s: Supported interfaces: %@", __func__, ifs);
id info = nil;

for (NSString *ifnam in ifs)
{
    info = (NSDictionary *)CFBridgingRelease(CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam));
    NSLog(@"%s: %@ => %@", __func__, ifnam, info);

    if (info && [info count])
    {
        break;
    }
}
4

1 回答 1

1

我在 iOS 5.01 上尝试了代码。它对我不起作用。我注意到发生了交接。我会解释的。我的两个接入点具有相同的 ssid,实际上是我可以从我的 iphone ping 的两个路由器。这是场景:

  1. 我最初连接到路由器 A。我可以 ping 路由器 A 的 IP。代码显示 A 的 BSSID。
  2. 我移动到路由器 B 的范围内,并超出了路由器 A 的范围。我无法再 ping 路由器 A,但我现在可以 ping 路由器 B。代码继续显示 A 的 BSSID。

尽管已经进行了切换,但 CNCopyCurrentNetworkInfo 不会返回新数据。这是为什么会发生这种情况的可能答案: https ://stackoverflow.com/a/11304701

于 2012-08-24T09:21:50.380 回答