Chcę otrzymywać powiadomienia, gdy wchodzę w obszar roamingowy w mojej aplikacji na iOS, przeczytałem już dokumentację dla NSLocale
, SCNetworkReachability
oraz telefonię rdzeniową (być może coś przeoczyłem). Potrzebuję uzyskać te informacje z sim (lub w jakikolwiek inny sposób, jeśli to możliwe).Jak uzyskać status roamingu w IOS
Odpowiedz
Nie ma interfejsu API systemu iOS do wykrywania statusu roamingu, ale można skorzystać z usług stron trzecich, takich jak http://ipinfo.io (moja własna usługa), aby znaleźć aktualny kraj o kodzie przewoźnika na podstawie adresu IP urządzenia. Następnie możesz porównać to z danymi CTCarrier, aby określić, czy urządzenie korzysta z roamingu. Oto średnia odpowiedź ipinfo.io API:
$ curl ipinfo.io/24.32.148.1
{
"ip": "24.32.148.1",
"hostname": "doc-24-32-148-1.pecos.tx.cebridge.net",
"city": "Pecos",
"region": "Texas",
"country": "US",
"loc": "31.3086,-103.5892",
"org": "AS7018 AT&T Services, Inc.",
"postal": "79772"
}
niestandardowe pakiety są dostępne, które obejmują również MNC/MCC szczegóły IP mobilnych choć. Aby uzyskać szczegółowe informacje, patrz http://ipinfo.io/developers.
Jak to działa z VPN? –
Działa to tylko podczas łączenia się przez sieć komórkową bez VPN. Możesz wykryć, czy użytkownik korzysta z Wi-Fi/Cellular przy użyciu interfejsów API iOS, a odpowiedź ipinfo.io będzie również wskazywać, czy jest to połączenie komórkowe, czy nie. –
Zazwyczaj metoda polega na uzyskaniu kodu kraju przewoźnika z podstawowego interfejsu telefonicznego, a następnie porównanie go z kodem kraju z odwrotnego geokodowania lokalizacji.
Zalety: działa z VPN i gdy użytkownik wyłączył dane podczas roamingu. Wady: nie działa bez lokalizacji.
nie mam żadnego kodu non-autorskich dla ciebie, ale klucz trzeba w Marks Place słownika trzeba dla kodu kraju jest @ „CountryCode” Geocoding byłoby coś jak: -
CLGeocoder* geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler: ^(NSArray* placemarks){}]
Kod kraju dla dostawcy byłoby
NSString* homeCountry = [netInfo.subscriberCellularProvider isoCountryCode];
Nadzieja to pomaga
, ale gdy jestem za granicą, kod isoCountryC wciąż jest _same_ jako odwrotny kod countrycode ... więc na przykład jeśli idę do Niemiec, CoreTelephony zwraca "de", a moje reverseGeoCodeLocation również zwraca "de", więc jestem * nie * roaming? – dOM
- 1. Jak uzyskać status drukarki?
- 2. Jak uzyskać status pobierania?
- 3. Status iOS Voiceover
- 4. Jak uzyskać status odpowiedzi jQuery.ajax?
- 5. Jak uzyskać status sieci systemu w Qt?
- 6. Włączanie/wyłączanie roamingu danych
- 7. Jak uzyskać status przesyłania pliku do Flask
- 8. Jak uzyskać aktualny status javascript związku websocket
- 9. Jak uzyskać status kompilacji z GitLab CI?
- 10. iPhone iOS: jak wykryć, kiedy jesteś w roamingu? (Nie dla telefonów z jailbreakiem)
- 11. Wykrywanie podczas roamingu jest wyłączony w Androidzie
- 12. Jak uzyskać status wyjścia programu Java w pliku wsadowym Windows
- 13. Jak uzyskać status uruchomionego zapytania w bazie danych PostgreSQL
- 14. Jak uzyskać wartość zwracaną (status) polecenia zewnętrznego w Vim
- 15. iOS 6 facebook Auth Status aplikacji
- 16. Funkcja PHP, aby uzyskać status Facebooka?
- 17. Jak uzyskać status ładowania podłączonego iPhone'a z komputera Mac?
- 18. Jak uzyskać status "Wyrażenie wyrażeń", udany lub nieudany?
- 19. Jak uzyskać status zadania drukowania za pomocą C#
- 20. Jak uzyskać status zakończenia programu java ze skryptu powłoki uniksowej?
- 21. Jak uzyskać iOS 6 UITableView Zgrupowane style w IOS 7
- 22. Pymongo - jak uzyskać status jako słownik Pythona dla zestawów rep
- 23. Jak uzyskać sharedApplication w Swift na iOS?
- 24. Jak uzyskać dane przyspieszenia w IOS?
- 25. Jak uzyskać metadane obrazu w ios
- 26. Jak znaleźć status transakcji
- 27. Czy mogę uzyskać status wcześniejszej kompilacji stage w metodzie Jenkinsa?
- 28. Jak sprawdzić status migracji?
- 29. Getting 0 jak status
- 30. Czy są jakieś sposoby na wykrycie statusu roamingu na iOS 6?
to sprawdzić dwa pytanie http://stackoverflow.com/questions/900547/is-there-any-way-to-determi ne-if-the-iphone-is-roaming i http://stackoverflow.com/questions/12473490/is-there-any-ways-to-detect-the-roaming-status-on-ios-6 –
plz udostępnij kod ... do tej pory próbowałeś – madLokesh
do tej pory próbowałem przez śledzenie adresu ip, a następnie wywołanie usługi internetowej, która może dać mi lokalizację tego IP, ale nie mam zamiaru korzystać z usługi internetowej. Mogę użyć kodu kraju mobilnego z podstawowej telefonii, aby porównać kod kraju. 2) drugim ograniczeniem jest to, że musimy polegać na SIM dla tych informacji, czyli jak uzyskać informacje z sim – Rana