Tengo algunos problemas con los datos devueltos por CNCopyCurrentNetworkInfo y me preguntaba si estoy haciendo algo mal.¿Estoy usando CNCopyCurrentNetworkInfo correctamente?
estoy usando el siguiente código para mostrar el BSSID del punto de acceso conectado en ese momento:
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);
}
}
revisar los extractos NSLog parece como si CNCopyCurrentNetworkInfo está colgando en datos antiguos para kCNNetworkInfoKeyBSSID bajo ciertas circunstancias.
Tengo dos puntos de acceso configurados y estoy tratando de obtener el BSSID del AP actualmente conectado. Si comienzo con solo un AP encendido, devuelve el BSSID correcto. Si apago ese AP, no obtengo ningún BSSID (correcto) y cuando enciendo el segundo AP y me conecto, me dan el BSSID correcto del segundo AP.
Sin embargo, si comienzo con un AP encendido, ejecute este código y reciba correctamente el BSSID de ese AP. Luego enciendo el segundo AP, luego apago el primero (forzando al dispositivo a recorrer el segundo AP), las declaraciones de log aún devuelven el BSSID del primer AP (que he apagado y posiblemente no estoy conectado).
¿Alguien tiene más experiencia con esto que yo? ¿Tengo la intención de enjuagar manualmente los valores devueltos por CNCopyCurrentNetworkInfo entre llamadas?
me he ejecutar esto en tanto una cuarta generación de iPod touch con iOS 4.3 construida usando Xcode 4 y un iPhone 4 con iOS 4.1 construido usando Xcode 3.2.4
Estoy teniendo el mismo problema, ahora en iPhone 4 y iOS 5.0.1. No creo que hayas encontrado una solución. –