2010-04-01 15 views

Odpowiedz

6

Trzeba ramy CoreTelephony

CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init]; 
CTCarrier *carrier = [networkInfo subscriberCellularProvider]; 

dostać MNC,

NSString *mnc = [carrier mobileNetworkCode]; 

, aby uzyskać MCC,

NSString *mcc = [carrier mobileCountryCode]; 
+0

Dzięki. Pytanie zadano w czasie 3.2, więc nie było to rozwiązanie dla mojego pierwszego problemu. Ale to było ponad rok temu, więc jeśli nie muszę być kompatybilny ze starymi urządzeniami, jest to najlepsze rozwiązanie. – Johan

+1

Aby pobrać CTCarrie, potrzebujesz najpierw informacji o sieci: 'CTTelephonyNetworkInfo * networkInfo = [[init CTTelephonyNetworkInfo] init]; CTCarrier * carrier = [networkInfo subscriberCellularProvider]; '. Kod w odpowiedzi zwróci zero dla obu. – FelixLam

+0

dlaczego jest to zaznaczone jako poprawna odpowiedź? Mój kod kraju dla mojego numeru telefonu to +1, nie otrzymuję tego za pomocą tego rozwiązania ... – zumzum

1

Możesz użyć metod klasy CTCarrier do pobrania kodu kraju i sieci. Jednak jest to tylko dla operatora macierzystego (= karta SIM), a nie operatora telefon jest obecnie zarezerwowane,

+0

Jakikolwiek sposób uzyskania tego, w którym telefon jest obecnie zarezerwowany? – Kasium

+0

O ile mi wiadomo, nie ma obecnie oficjalnej metody, aby to zrobić. – holtmann