ios - التقاط حدث تغيير شبكة واي-في في يوس




objective-c ios5 (2)

هل هناك أي طريقة لالتقاط الحدث يحدث عندما يتصل المستخدم إلى شبكة واي فاي معينة في دائرة الرقابة الداخلية التطبيق. على ما يرام حتى لو كان هذا يمكن تحقيقه باستخدام أي مكتبة خاصة والتي لا تتطلب امتيازات المستخدم السوبر (كسر السجن). أريد فقط التقاط الحدث المتغير ل سسيد المتصل.


تريد سيستيمكونفيغوراتيون، والتي لديها مرافق لرؤية الإخطارات على جميع أنواع التغييرات الشبكات.


أود أن أوصي ببساطة باستخدام ما لارم نشر، وإنشاء نستيمر للتحقق كل ثانية أو نحو ذلك، ما سسيد من الشبكة الحالية الخاصة بك، إذا كنت الكشف عن تغيير، ببساطة تفعل كل ما عليك القيام به. نضع في اعتبارنا، تغيير شبكات واي فاي ليس شيئا يحدث على الفور، لذلك وجود قرار 1 ثانية ليست سيئة

في applicationDidFinishLoading

NSTimer *ssidTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(fetchSSIDInfo) userInfo:nil repeats:YES];

في أبديليغات

- (id)fetchSSIDInfo {
     NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
     NSLog(@"Supported interfaces: %@", ifs);
     id info = nil;
     NSString *ifnam = @"";
     for (ifnam in ifs) {
         info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
         NSLog(@"%@ => %@", ifnam, info);
         if (info && [info count]) { break; }
     }
     if ([info count] >= 1 && [ifnam caseInsensitiveCompare:prevSSID] !=  NSOrderedSame) {
          // Trigger some event
          prevSSID = ifnam;
     }

     return info;
}

شئ مثل هذا. لا أستطيع التحقق مما إذا كان رمز هو الخطأ المطبعي مجانا وأنا لست أمام لجنة الهدنة العسكرية، ولكن لا ينبغي أن تكون مختلفة جدا







ios6