2012-07-30 26 views
6

से स्कैन करने और कनेक्ट करने के लिए आईओएस ओब्जे-सी कोड कहां मिल सकता है मुझे एक नमूना ओबीजे-सी कोड चाहिए जो स्कैन और वाईफाई से कनेक्ट हो। निजी एपीआई ठीक है, मैं ऐप को ऐपस्टोर पर प्रकाशित नहीं कर रहा हूं। मुझे "WiFiFoFum" नामक साइडिया में ऐप मिला जो स्कैन और कनेक्ट कर सकता है, दुर्भाग्यवश मुझे उस ऐप का स्रोत कोड नहीं मिला। कोई जानता है कि मुझे वह कोड कहां मिल सकता है? धन्यवादमुझे वाईफ़ाई (निजी एपीआई)

+1

किसी भी अद्यतन इस पर: आप इसे का उपयोग कर रहे हैं, तो आप इसे -100 के लिए सेट कर सकते हैं: यहाँ एक कोड कतरना है (चेरी मेरे कोड से उठाया है, जैसा कि इतना अपरीक्षित)? मैंने https://github.com/devinshively/wifiAssociate की कोशिश की, यह आईओएस 8 पर काम नहीं करता है। – divyum

+0

नहीं, मैंने आईओएस 8 पर इसका परीक्षण नहीं किया है। – almas

उत्तर

6

मिले जवाब यहाँ: http://code.google.com/p/iphone-wireless/issues/detail?id=20

यह मेरी iPhone 4 v5.1.1 पर बिल्कुल ठीक काम करता है। मैं नेटवर्क से स्कैन और कनेक्ट करने में सक्षम हूं। आप परियोजना यहाँ https://github.com/devinshively/wifiAssociate

यहाँ डाउनलोड कर सकते हैं एक प्रशस्ति पत्र है:

Apple80211Associate अभी भी काम कर रहा है (कम से कम 3.1.2 पर)। iPhone OS 2 और 3 के बीच, ढांचा, नाम बदल गया है तो आप निम्नलिखित के रूप में अपने कार्यों के लिए बाध्य करना चाहिए:

void *airportHandle; 
int  (*Apple80211Open)(void *); 
int  (*Apple80211BindToInterface)(void *, NSString *); 
int  (*Apple80211Close)(void *); 
int  (*Apple80211Info)(void *, NSDictionary**); 
int  (*Apple80211Associate)(void *, NSDictionary*, void *); 
int  (*Apple80211Scan)(void *, NSArray **, void *); 

libHandle  = dlopen("/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager", RTLD_LAZY); 
Apple80211Open       = dlsym(libHandle, "Apple80211Open"); 
Apple80211BindToInterface  = dlsym(libHandle, "Apple80211BindToInterface"); 
Apple80211Scan       = dlsym(libHandle, "Apple80211Scan"); 
Apple80211Close       = dlsym(libHandle, "Apple80211Close"); 
Apple80211Info       = dlsym(libHandle, "Apple80211GetInfoCopy"); 
Apple80211Associate      = dlsym(libHandle, "Apple80211Associate"); 

v3 के लिए वी 2 से सबसे महत्वपूर्ण परिवर्तन SCAN_RSSI_THRESHOLD पैरामीटर (समारोह स्कैन के लिए प्रयोग किया जाता) है । यह भौतिक डीबी से बहुत सकारात्मक संख्या लेने के लिए उपयोग करता है, यह
होना चाहिए और अब यह सिग्नल का डीबी लेता है। iOS 8 के लिए

void *airportHandle; 

NSArray *keys = [NSArray arrayWithObjects:@"SCAN_RSSI_THRESHOLD", @"SSID_STR", nil]; 
NSArray *objects = [NSArray arrayWithObjects:[NSNumber numberWithInt:-100], ssid, nil]; 

NSDictionary *params = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 
NSArray *found; 


int openResult = Apple80211Open(&airportHandle); 
NSLog(@"Openning wifi interface %@", (openResult == [email protected]"succeeded":@"failed")); 

int bindResult = Apple80211BindToInterface(airportHandle, @IF_NAME); 

int scanResult = Apple80211Scan(airportHandle, &found, params); 

NSDictionary *network; 

// get the first network found 
network = [found objectAtIndex:0]; 
int associateResult = Apple80211Associate(airportHandle, network,NULL); 

Apple80211Close(airportHandle); 
1

उद्देश्य-सी संकलित है, इसलिए आप केवल एक स्क्रिप्टिंग भाषा जैसे प्रोग्रामों का स्रोत कोड प्राप्त नहीं कर सकते हैं। आप यह देखने के लिए जांच सकते हैं कि "वाईफाईफ़ोम" खुला स्रोत है, और आप लेखक के गीथब से स्रोत डाउनलोड करने में सक्षम हो सकते हैं। नहीं तो आप /System/Library/PrivateFrameworks निर्देशिका में निजी चौखटे को देखो और इस

$ class-dump-z -H <private framework> 
निश्चित रूप से कोण कोष्ठक के बिना

तरह class-dump-z का उपयोग कर उन लोगों से हेडर फाइल डंप कर सकते हैं।

संपादित करें:

बस की जाँच की, नहीं लगती है यह खुला स्रोत है जैसे।

+0

मैं रिवर्स इंजीनियरिंग में बहुत अच्छा नहीं हूं, यहां तक ​​कि यहां तक ​​कि अगर मुझे हेडर फाइलें मिलती हैं (वे डाउनलोड के लिए उपलब्ध हैं) मुझे नहीं पता कि उनका उपयोग कैसे किया जाए। वे विधियां कुछ पैरामीटर (structs) लेती हैं, और मुझे नहीं पता कि वे क्या हैं। यही कारण है कि मैं obj-c – almas

+0

में एक उपयोग में उपयोग कोड नमूना चाहता हूं ठीक है आप विधियों के कार्यान्वयन को नहीं देख सकते हैं, उन्हें किसी कारण से निजी (और अनियंत्रित) कहा जाता है। नाम और पैरामीटर आमतौर पर फ़ंक्शन के बारे में एक अच्छा संकेतक होते हैं। उन किसी भी structs को देखें जिनके बारे में आप निश्चित नहीं हैं और यदि आपको वास्तव में आवश्यकता है, तो आप इन विधियों को हुक करने के लिए एक ट्वीक लिखने के लिए मोबाइल सब्सट्रेट का उपयोग कर सकते हैं और उनके पास क्या हो रहा है और वे क्या लौट रहे हैं के बारे में अधिक जानकारी प्राप्त कर सकते हैं। –