Gönner-Abo

Ab CHF 5.– im Monat

👉🏼 Wir benötigen deine Unterstützung! Unterstütze macprime mit einem freiwilligen Gönner-Abo und mache die Zukunft unseres unabhängigen Apple-Mediums aus der Schweiz mit möglich.

macprime unterstützen

xcode WLAN Spots anzeigen

 

VonAntwort von xcodeneuling

Hallo, bin neu in xcode und spiele damit noch rum und mache kleine apps für mich :)

Jetzt möchte ich ein einfaches App machen, dass mir einfach nur alle WLAN punkte in meiner umgebung Anzeigt. Im developer vom Apple habe ich recht wenig darüber finden können (oder auch nich alles genug durchsucht). Im moment weiss ich, dass es etwas mit der UIRequiresPersistentWiFi zutun hat.

Es soll eine Art WLAN Scan sein, aber ohne dass man zu diesen connecten kann, also nur eine Auflistung der momentanen Spots.

Profilfoto von flexo

flexo

@Oliver: Vielleicht will er etwas lernen? ;-)

KisMac und iStumbler sind aber trotzdem eine gute Empfehlung, beide sind OpenSource! Empfehle iStumbler. Beide sind natürlich für OS X und nicht für iOS 4.

Denke als blutiger Anfänger (wie ich aus deinem Alias entnehme) dürfte es aber eine etwas gar schwere Aufgabe sein. Vielleicht mal mit etwas einfacherem beginnen und nur schon XCode mit dem Interface Builder beherrschen :-)

 

xcodeneuling

Danke für die Antworten.

Also kismac und istrumbler sind von den Funktionen schon viel mehr als das was ich eingentlich ursprünglich vorhatte.

Habe eigentlich gedacht, dass es einer einfache Methode geben kann, die mir in einem label einfach nur eine Liste mit WLAN spots zeigt. Nicht mehr und nicht weniger. Die Anwendung soll nur scannen und anzeigen.

 

xcodeneuling

Ich arbeite dran :) Wie die meinungen hier ist es wirklich nicht so einfach, wie ich es mir vorgestellt habe. Weil in der API nichts über WLAN drin steht, ist von apple wohl so gewollt. habe mich noch weiter umgeschaut, und auf einer seite folgenden quellcode gefunden.

WifiNetwork.h

#import <Foundation/Foundation.h>
 #import <CoreFoundation/CoreFoundation.h>
 #include <dlfcn.h>
 @interface WifiNetwork : NSObject {
 void *libHandle; 
 void *airportHandle; 
 int (*Apple80211Open)(void *);
 int (*Apple80211BindToInterface)(void *, NSString *);
 int (*Apple80211Close)(void *);
 int (*Apple80211Associate)(void *, NSDictionary *, NSString *);
 int (*Apple80211Scan)(void *, NSArray **, void *);
 int (*Apple80211GetInfoCopy)(void *, void *);
 }
 + (WifiNetwork *) getWifiNetwork; - (int) getInfo:(CFDictionaryRef *) infostruct;
 @end

WiFiNetwork.m

#import "WifiNetwork.h"
 @implementation WifiNetwork static WifiNetwork *network = nil;
 + (WifiNetwork *) getWifiNetwork {
 if (!network) { 
 network = [[WifiNetwork alloc] init];
 } 
return network; 
} 
- (id) init { 
self = [super init];
 libHandle = dlopen("/System/Library/PrivateFrameworks/Apple80211.framework/Apple80211", RTLD_LAZY);
 Apple80211Open  = dlsym(libHandle, "Apple80211Open");
 Apple80211BindToInterface  = dlsym(libHandle, "Apple80211BindToInterface");
 Apple80211Close = dlsym(libHandle, "Apple80211Close");
 Apple80211Associate = dlsym(libHandle, "Apple80211Associate");
 Apple80211Scan  = dlsym(libHandle, "Apple80211Scan");
 Apple80211GetInfoCopy = dlsym(libHandle, "Apple80211GetInfoCopy");
 Apple80211Open(&airportHandle);
 Apple80211BindToInterface(airportHandle, @"en0"); // standard interface return self;
 } 
- (void) dealloc {
 Apple80211Close(airportHandle);
 [super dealloc];
 } 
- (int) getInfo:(CFDictionaryRef *) infostruct { 
return Apple80211GetInfoCopy(airportHandle, infostruct); 
} 
@end

jetzt lese ich noch n paar bücher um mir ein besseres verständniss des codes zu machen. wenn jemand damit mein ziel, einfach nur die namen der gefundenen wlan netzte anzeigen, erreichen kann wär ich sehr dankbar. :)

Profilfoto von pse

pse

Das sind undokumentierte API-Calls! Für MacOSX gibt es eine Klasse namens CWInterface mit einer Methode scanForNetworksWithParameters, dummerweise scheint es die in iOS nicht zu geben.

Ich bin noch über http://www.wlanbook.com/iphone-wifi-scanner-apps-banned-by-apple/ gestolpert, deren Inhalt wird Dir wohl nicht gefallen:

An email to one developer from Apple stated that because “…There are no published APIs that provide the ability to manipulate the wireless connection or the show level of information regarding the wireless connection as demonstrated in the application….” their app was removed from the app store.

Anmelden um neue Antworten zu verfassen

Allegra Leser! Nur angemeldete Nutzer können bei diesem Beitrag Antworten hinterlassen. Jetzt kostenlos registrieren oder mit bestehendem Benutzerprofil anmelden.