iOS 判断设备是否安装SIM卡

找了好多方法测试手机是否存在SIM卡,好多都是在 .h 中添加好多方法名的那个。

如:

引入 CoreTelephony.framework 

extern NSString* const kCTSMSMessageReceivedNotification;

extern NSString* const kCTSMSMessageReplaceReceivedNotification;

extern NSString* const kCTSIMSupportSIMStatusNotInserted;

extern NSString* const kCTSIMSupportSIMStatusReady;

id CTTelephonyCenterGetDefault(void);

void CTTelephonyCenterAddObserver(id,id,CFNotificationCallback,NSString*,void*,int);

void CTTelephonyCenterRemoveObserver(id,id,NSString*,void*);

int CTSMSMessageGetUnreadCount(void);

int CTSMSMessageGetRecordIdentifier(void * msg);

NSString * CTSIMSupportGetSIMStatus();

NSString * CTSIMSupportCopyMobileSubscriberIdentity();

id  CTSMSMessageCreate(void* unknow/*always 0*/,NSString* number,NSString* text);

void * CTSMSMessageCreateReply(void* unknow/*always 0*/,void * forwardTo,NSString* text);

void* CTSMSMessageSend(id server,id msg);

NSString *CTSMSMessageCopyAddress(void *, void *);

NSString *CTSMSMessageCopyText(void *, void *);

然后,即可利用 [CTSIMSupportGetSIMStatus() isEqualToString:kCTSIMSupportSIMStatusNotInserted] 进行判断。

if([CTSIMSupportGetSIMStatus() isEqualToString:kCTSIMSupportSIMStatusNotInserted]){

     NSLog(@"不存在sim卡");

 }

else{

      NSLog(@"存在sim卡");

}

亲测了一下,该方法打印出来显示总是存在SIM卡

好吧,毙掉该方法

使用第二个方法

方法二:首先添加静态库 

CoreTelephony.framework

在需要进行拨打电话的页面中导入头文件:

#import

#import

添加方法如下:

// 判断设备是否安装sim卡

- (BOOL)isSIMInstalled

{

        CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init];

        CTCarrier *carrier = [networkInfo subscriberCellularProvider];

        if (!carrier.isoCountryCode) {

             NSLog(@"请安装好手机SIM卡后在拨打电话.");

             return NO;

          }else{

               NSLog(@"存在SIM卡");

               return YES;

          }

}


参考文章链接:http://www.jianshu.com/p/7b4874b9998e

你可能感兴趣的:(iOS 判断设备是否安装SIM卡)