我遇到了CNCopyCurrentNetworkInfo返回数据的问题,想知道是否有做错的地方。
我使用以下代码来显示当前连接接入点的BSSID:
通过查看NSLog语句,似乎在某些情况下CNCopyCurrentNetworkInfo会保留kCNNetworkInfoKeyBSSID的旧数据。
我设置了两个访问点,并试图获取当前连接的AP的BSSID。如果只打开一个AP,则返回正确的BSSID。如果我关闭该AP,则没有BSSID(正确),当我打开第二个AP并连接到它时,我会得到第二个AP的正确BSSID。
但是,如果我先打开一个AP,运行此代码并且正确地获得该AP的BSSID。然后我打开第二个AP,然后关闭第一个AP(强制设备漫游到第二个AP),则日志语句仍然返回第一个AP的BSSID(已关闭且不可能连接)。
有没有比我更多的经验?我是否应该在调用之间手动清除CNCopyCurrentNetworkInfo返回的值?
我在第四代iPod touch上运行了iOS 4.3的Xcode 4和iPhone 4上运行iOS 4.1的Xcode 3.2.4。
我使用以下代码来显示当前连接接入点的BSSID:
NSArray* interfaces = (NSArray*) CNCopySupportedInterfaces();
for (NSString* interface in interfaces) {
CFDictionaryRef networkDetails = CNCopyCurrentNetworkInfo((CFStringRef) interface);
if (networkDetails) {
NSLog(@"all details: %@", (NSDictionary *)networkDetails);
NSLog(@"BSSID: %@", (NSString *)CFDictionaryGetValue (networkDetails, kCNNetworkInfoKeyBSSID));
CFRelease(networkDetails);
}
}
通过查看NSLog语句,似乎在某些情况下CNCopyCurrentNetworkInfo会保留kCNNetworkInfoKeyBSSID的旧数据。
我设置了两个访问点,并试图获取当前连接的AP的BSSID。如果只打开一个AP,则返回正确的BSSID。如果我关闭该AP,则没有BSSID(正确),当我打开第二个AP并连接到它时,我会得到第二个AP的正确BSSID。
但是,如果我先打开一个AP,运行此代码并且正确地获得该AP的BSSID。然后我打开第二个AP,然后关闭第一个AP(强制设备漫游到第二个AP),则日志语句仍然返回第一个AP的BSSID(已关闭且不可能连接)。
有没有比我更多的经验?我是否应该在调用之间手动清除CNCopyCurrentNetworkInfo返回的值?
我在第四代iPod touch上运行了iOS 4.3的Xcode 4和iPhone 4上运行iOS 4.1的Xcode 3.2.4。