2011-08-19 11 views
7

मैंने अपने आवेदन में पहुंच योग्यता आयात की है, और मेरे पास आपके लिए कुछ प्रश्न हैं। मुझे पहले अपने आवेदन और अन्य औजारों को समझाएं।पहुंच योग्यता सहायता - वाईफाई डिटेक्शन

यह एप्लिकेशन दो समय के साथ एक ही समय, एक विज्ञापन नेटवर्क, और इंटरनेट के माध्यम से इंटरनेट के साथ संचार करता है। नोट: विज्ञापन-प्रसार नेटवर्क इंटरनेट से कनेक्ट नहीं है। यह पूरी तरह से काम करता है - यह पहले ही लागू हो चुका है और आश्चर्यजनक रूप से परीक्षण करता है।

ऐसा कहा जा रहा है कि, मैं दो चीजों का पता लगाने के लिए पहुंच क्षमता को कार्यान्वित करना चाहता हूं।

1) क्या उपयोगकर्ता वाईफाई विज्ञापन-नेटवर्क से कनेक्ट है? (यदि संभव हो तो यह भी बेहतर है कि यह WXYZ के उपसर्ग के साथ वाईफाई एड-हाॉक नेटवर्क से कनेक्ट है या नहीं। उदाहरण के लिए, यदि दो नेटवर्क सूचीबद्ध हैं, तो एक को लिंकिस कहा जाता है और दूसरा WXYZ-Testing_Platform कहा जाता है, यह जानता है चाहे वह WXYZ से जुड़ा हुआ हो या नहीं)।

2) क्या उपयोगकर्ता 3 जी (या 2 जी, आदि) के माध्यम से इंटरनेट से कनेक्ट हो सकता है और हमारे सर्वर तक पहुंच सकता है?

अग्रिम धन्यवाद

भविष्य lookers के लिए उत्तर शामिल करने के लिए संपादित करें:

1 के लिए), मेरे कोड इस तरह दिखता है:

.h 
#import <SystemConfiguration/CaptiveNetwork.h> //for checking wifi network prefix 

.m 
- (BOOL) connectedToWifi 
{ 

    CFArrayRef myArray = CNCopySupportedInterfaces(); 
    // Get the dictionary containing the captive network infomation 
    CFDictionaryRef captiveNtwrkDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); 

    NSLog(@"Information of the network we're connected to: %@", captiveNtwrkDict); 

    NSDictionary *dict = (__bridge NSDictionary*) captiveNtwrkDict; 
    NSString* ssid = [dict objectForKey:@"SSID"]; 

    if ([ssid rangeOfString:@"WXYZ"].location == NSNotFound || ssid == NULL) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 

और 2 के लिए) , मैंने पहुंच योग्यता आयात की और जब भी मैं सर्वर से कनेक्ट करने के लिए जाता हूं, तो इस विधि का उपयोग कर रहा हूं ... नोट:को प्रतिस्थापित करेंसर्वर जानकारी

-(void) checkIfCanReachServer 
{ 
UIAlertView *errorView; 
    Reachability *r = [Reachability reachabilityWithHostName:@"http://www.google.com"]; 
    NetworkStatus internetStatus = [r currentReachabilityStatus]; 


    if(internetStatus == NotReachable) { 
     errorView = [[UIAlertView alloc] 
        initWithTitle: @"Network Error" 
        message: @"Cannot connect to the server." 
        delegate: self 
        cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
     [errorView show]; 
    } 
} 

उत्तर

7

गम्यता के साथ केवल आप जानते डिवाइस सफलतापूर्वक डाटा पैकेट भेज बाहर सकता है अगर सुविधा देता है। तो 1 के लिए) आपको iPhone get SSID without private library का संदर्भ लेना चाहिए। 2 के लिए) आप इंटरनेट कनेक्शन की जांच के लिए केवल पहुंच योग्यता का उपयोग करेंगे, फिर आपको यह सुनिश्चित करने के लिए NSURLConnection या अन्य नेटवर्क लाइब्रेरी का उपयोग करना होगा ताकि आप अपने सर्वर तक पहुंच सकें।

+0

अब मैं इसे देख लूंगा, धन्यवाद! – Baub