2010-04-01 12 views

Respuesta

6

usted necesita el marco CoreTelephony

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

para obtener MNC,

NSString *mnc = [carrier mobileNetworkCode]; 

para obtener MCC,

NSString *mcc = [carrier mobileCountryCode]; 
+0

Gracias. La pregunta se hizo en 3.2 veces, por lo que esta no fue una solución para mi primer problema. Pero eso fue hace más de un año, así que si no tengo que ser compatible con dispositivos antiguos, esta es la mejor solución. – Johan

+1

Para recuperar el CTCarrie primero necesita la información de la red: 'CTTelephonyNetworkInfo * networkInfo = [[CTTelephonyNetworkInfo alloc] init]; CTCarrier * carrier = [networkInfo subscriberCellularProvider]; '. El código en la respuesta devolverá cero para ambos. – FelixLam

+0

¿por qué está marcado como la respuesta correcta? Mi código de país para mi número de teléfono es +1, no lo estoy usando con esta solución ... – zumzum

1

Puede usar los métodos de la clase CTCarrier para recuperar el código de país y de red. Sin embargo, esto es sólo para el proveedor de origen (= tarjeta SIM) y no el proveedor del teléfono está actualmente reservado en,

+0

¿Alguna forma de obtener la que está actualmente en el teléfono? – Kasium

+0

Por lo que sé, no hay un método oficial para hacerlo en este momento. – holtmann

Cuestiones relacionadas