Czy jest jakiś sposób przechwycenia zdarzenia, gdy użytkownik łączy się z określoną siecią Wi-Fi w aplikacji na iOS. To jest w porządku, nawet jeśli można to osiągnąć za pomocą dowolnej biblioteki prywatnej, która nie wymaga uprawnień superużytkownika (złamanie więzienia). Chcę tylko uchwycić zmieniające się zdarzenie podłączonego identyfikatora SSID.Zdarzenie zmiany sieci przechwytującej Wi-Fi w systemie iOS
Odpowiedz
Polecam po prostu używając tego, co napisał Larme, i ustawiając NSTimer, by sprawdzać co sekundę, co to jest SSID twojej obecnej sieci, jeśli wykryjesz zmianę, po prostu rób to, co musisz. Należy pamiętać, zmieniając sieci WiFi nie jest czymś, co dzieje się natychmiastowo, więc posiadanie drugiego Rozdzielczość 1 nie jest zły
W applicationDidFinishLoading
NSTimer *ssidTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(fetchSSIDInfo) userInfo:nil repeats:YES];
W AppDelegate
- (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;
}
Coś tak. Nie mogę sprawdzić, czy kod jest wolny od liter, ponieważ nie jestem przed komputerem Mac, ale nie powinno to być zbyt różne.
Tak, tak już zrobiłem. Chciałem tylko sprawdzić, czy istnieje jakakolwiek metoda. Dzięki za odpowiedź – Shanaka
Nie, że znam. Prawdopodobnie istnieje pewna prywatna metoda, z której może korzystać Apple, ale jeśli jej użyjesz, zostaniesz odrzucony. Ale pisanie własnych nie jest zbyt skomplikowane. – MZimmerman6
To jest udokumentowane https://developer.apple.com/LIBRARY/ios/documentation/SystemConfiguration/Reference/CaptiveNetworkRef/index.html#//apple_ref/c/func/CNCopyCurrentNetworkInfo – Andy
Chcesz SystemConfiguration, która ma udogodnienia do oglądania powiadomień na temat wszelkiego rodzaju zmian w sieci.
Można pobierać dane z połączenia WiFi:
- (NSDictionary *)getConnectionDetails
{
NSDictionary *connectionDetails = [NSDictionary dictionary];
CFArrayRef myArray = CNCopySupportedInterfaces();
if (myArray) {
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
connectionDetails = (__bridge_transfer NSDictionary*)myDict;
}
return connectionDetails;
}
A jeśli check [connectionDetails valueForKey:@"BSSID"]
dostaniesz BSSID.
Również należy pamiętać, że trzeba importować #import <SystemConfiguration/CaptiveNetwork.h>
- 1. Użycie sieci przechwytującej
- 2. Jak powiązać zdarzenie zmiany w sieci szkieletowej?
- 3. Jak dodać zdarzenie zmiany rozmiaru do artykułu w sieci szkieletowej?
- 4. Wykryj zmiany rotacji w systemie iOS
- 5. Program Howto Access WiFi Settings programowo w systemie iOS 5.1
- 6. Wykryj zmianę sieci Ethernet/WiFi
- 7. Płynne przekazywanie WiFi w systemie Android
- 8. Jak mogę lepiej optymalizować pracę w sieci w systemie iOS?
- 9. Prędkość pobierania danych z sieci WiFi/sieci komórkowej programowo
- 10. Jak wykrywać zmiany w sieci z osiągalnym zasięgiem?
- 11. iPhone aktywny typ sieci (2G, 3G, WiFi)
- 12. Zdarzenie zmiany wejścia polimeru
- 13. iPhone SDK wykryć WiFi i operatora sieci
- 14. Android zmiany nazwy urządzenia do wifi-direct
- 15. Znajdź wszystkie działające adresy IP w sieciowym routerze WiFi ios
- 16. Zdarzenie zmiany elementu elementu html
- 17. Zdarzenie zmiany rozmiaru kolumny QTableWidget
- 18. Jak obsługiwać zdarzenie zmiany Canvas.Top w WPF?
- 19. Zdarzenie zmiany wyzwalacza jquery w polu wyboru
- 20. Stopka statyczna w systemie iOS
- 21. Jak uzyskać tryb szyfrowania WiFi na iOS/iPhone/iPad?
- 22. Słuchanie stan WIFI
- 23. Uzyskiwanie siły sygnału WiFi w Androidzie
- 24. Jak programowo zapomnieć o sieci bezprzewodowej w systemie Android?
- 25. Otwarte ustawienia Wifi przez "prefs: root = WIFI" nie powiodło się w iOS 10
- 26. Globalne zdarzenie zmiany stanu routera kątowego 2
- 27. Fuel UX - Hook na zdarzenie zmiany kreatora
- 28. Zdarzenie zmiany wyzwalacza z rozwijanego menu
- 29. Zdarzenie Vuejs dotyczące zmiany wartości elementu?
Może z tym: http://stackoverflow.com/questions/5198716/iphone-get-ssid-without-private-library/7041017#7041017 – Larme
Jest aby uzyskać aktualnie podłączony SSID Wi-Fi. Muszę uchwycić zdarzenie, w którym użytkownik łączy się z siecią Wi-Fi lub zmienić aktualnie połączoną sieć Wi-Fi na inną. – Shanaka