2012-11-27 8 views
4

모바일 네트워크에서 국가 코드를 가져 오는 방법이 있습니까? 코드를 통해 장치에있는 SIM의 국가 이름을 가져올 수 있습니까?iPhone에서 이동 통신사를 사용하여 국가 코드를 식별 할 수 있습니까?

일부 작업 코드로 제발 도와주세요. CoreTelephony Framework를 확인했지만 ddnt가 성공했습니다.

미리 감사드립니다.

+0

위치를 사용하여 사용자의 위치를 ​​결정하십시오. ns API. 일부 webService를 사용하여 해당 국가의 코드를 확인한 다음 해당 위치의 국가 코드를 확인하십시오. –

+2

하지만 내 요구 사항은 GPS 위치를 사용하지 않는 이동 통신사로부터 국가 코드를받는 것입니다. –

+1

어쨌든 '합법적으로'가 아니라 그렇게 할 방법이 없습니다. 사용자가 Sim Info의 대부분을 스니핑하려고하면 Apple에서 응용 프로그램을 거부 할 가능성이 있습니다. –

답변

17

편집 :이 엑스 코드 (6)으로, 간단하게, 심지어 자동으로 수행되는 프로젝트에 프레임 워크를 연결,이 줄을 추가 :

@import CoreTelephony; 

원본 : 프로젝트에 CoreTelephony.framework를 추가합니다. 당신은 그것은 CoreTelephony 안에 목록 here

+0

반환 된 정보가 전화가 잠겨있는 이동 통신사의 것이므로 다른 질문에 대한 의견을 보았습니다. 로밍시 사용중인 이동 통신사가 아닙니다. 예를 들면 다음과 같습니다. http://stackoverflow.com/questions/853467/retreiving-carrier-name-from-iphone-programmatically 흠 .. 자세한 내용은 mnc가 로밍 할 때 변경된다는 것을 나타냅니다. –

+0

위의 코드를 iPhone 4S 장치에서 시도했는데 제대로 작동합니다. –

+0

@Giusseppe iPichy .. 다른 이동 통신사에 로밍 했습니까? –

1

을 찾을 수있는 국가 코드는 숫자 코드에 있음을

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


// Get carrier name 
NSString *carrierName = [carrier carrierName]; 
if (carrierName != nil) 
    NSLog(@"Carrier: %@", carrierName); 

// Get mobile country code 
NSString *mcc = [carrier mobileCountryCode]; 
if (mcc != nil) 
    NSLog(@"Mobile Country Code (MCC): %@", mcc); 

// Get mobile network code 
NSString *mnc = [carrier mobileNetworkCode]; 

if (mnc != nil) 
    NSLog(@"Mobile Network Code (MNC): %@", mnc); 

참고 :이 코드입니다

#import <CoreTelephony/CTCarrier.h> 
#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

: 클래스 내부 이 두 줄을 추가

CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init]; 
CTCarrier *carrier = [networkInfo subscriberCellularProvider]; 
관련 문제