如何从Android / iOS应用程序中检索附近的WiFi网络(不是本地设备)的BSSID / mac地址和强度?此应用程序是使用Titanium构建的。 Titanium.Platform提供设备的macaddress,而不是外部网络。

如果使用当前的API无法做到这一点,是否有人知道/拥有可以解决此问题的模块?

最佳答案

TI平台无法提供BSSID。您可以编写一个可以读取它的模块。它将类似于:

NSArray *ifs = (id)CNCopySupportedInterfaces();
NSLog(@"%s: Supported interfaces: %@", __func__, ifs);
id info = nil;
for (NSString *ifnam in ifs) {
    info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
    NSLog(@"%s: %@ => %@", __func__, ifnam, info);
    BSSID=[info valueForKey:@"BSSID"];
    if (info && [info count]) {
        break;
    }
    [info release];
}
[ifs release];
return BSSID;

但是,请注意,从IOS 5开始,如果所有AP上的SSID都相同,则该bug会阻止您读取BSSID。它不会正确刷新BSSID。我仍在等待修复或替代解决方案,因此,如果有人有什么我将不胜感激!

10-07 20:42