Liste / recherche de Wifi iPhone

Je suis à la recherche d'un moyen de présenter les Wifi dans une Application iPhone.
Pour l'instant, mes recherches ont donné lieu à la suivante:

  • Applications qui mettent en œuvre(ed) d'une telle fonctionnalité ont été retiré de l'AppStore (signifie que vous ne pouvez pas déployer l'Application via l'AppStore, ce qui est bien pour moi)
  • Apple cache la fonctionnalité qui est nécessaire pour une analyse dans un cadre privé et vous ne pouvez pas trouver toutes les explications/commentaires/exemples sur "comment utiliser"
  • http://code.google.com/p/iphone-wireless semble être le plus prometteur. de toute façon, je ne peux pas comprendre comment inclure la livraison des sources dans mon code pour qu'il fonctionne sur un appareil

Même les adaptations qui sont mentionnés htt ://code.google.com/p/iphone-wireless/issues/detail?id=26 ne m'obtenez pas les résultats souhaités. Le plus de progrès a été de se retrouver avec un

dlopen erreur: dlopen(/System/Library/SystemConfiguration/Aeropuerto.bundle/Aeropuerto, 1): image non trouvé
a échoué: __Apple80211Associate

message après le lancement de l'app sur un appareil (iPhone 3GS, iOS 3.1.3).

Utilisé le code source que procudes l'erreur est ici:

NSMutableDictionary *networks;
bool scanning;
void *libHandle;
void *airportHandle;
int (*open)(void *);
int (*bind)(void *, NSString *);
int (*close)(void *);
int (*scan)(void *, NSArray **, void *);
networks = [[NSMutableDictionary alloc] init];
//libHandle = dlopen("/System/Library/Frameworks/Preferences.framework/Preferences", RTLD_LAZY);
//libHandle = dlopen("/System/Library/PrivateFrameworks/Apple80211.framework/Preferences", RTLD_LAZY);
libHandle = dlopen("/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager", RTLD_LAZY);
open = dlsym(libHandle, "Apple80211Open");
bind = dlsym(libHandle, "Apple80211BindToInterface");
close = dlsym(libHandle, "Apple80211Close");
scan = dlsym(libHandle, "Apple80211Scan");
open(&airportHandle);
bind(airportHandle, @"en0");
NSLog(@"Scanning...");
scanning = true;
NSArray *scan_networks;
NSDictionary *parameters = [[NSDictionary alloc] init];
scan(airportHandle, &scan_networks, parameters);
bool changed;
for (int i = 0; i < [scan_networks count]; i++) {
if([networks objectForKey:[[scan_networks objectAtIndex: i] objectForKey:@"BSSID"]] != nil 
&& ![[networks objectForKey:[[scan_networks objectAtIndex: i] objectForKey:@"BSSID"]] isEqualToDictionary:[scan_networks objectAtIndex: i]])
changed = true;
[networks setObject:[scan_networks objectAtIndex: i] forKey:[[scan_networks objectAtIndex: i] objectForKey:@"BSSID"]];
}
if(changed) {
NSLog(@"NetworksUpdated");
}
scanning = false;
NSLog(@"Scan Finished...");
NSLog(@"Found %i networks: %@", [networks count], networks);

Même si vous essayez l'une des autres lignes commentées, il ne fonctionne pas:
programme a reçu EXC_BAD_ACCESS et plusieurs

avertissement: check_safe_call: impossible de restaurer l'image actuelle

avertissement: Impossible de restaurer précédemment sur l'image sélectionnée.

Ce que je suis à la recherche sont des conseils sur la façon de l'iphone-sans fil dans mon projet et comment modifier le code donné?
Une alternative est une astuce sur la façon de scan pour les Wifi dans votre environnement.

Serait sympa si quelqu'un pouvait m'aider.

juste essayé: si le code me prévient au cours de l'exécution; il imprime trouvé Wifi. Il doit y avoir une meilleure approche de ce buggy? Serait bien au moins bien les ouvrir et de fermer l'accès à la WiFi-matériel (ce qui ne semble pas fonctionner avec le code ci-dessus) 0o

OriginalL'auteur m Jae | 2011-01-19