美文网首页
iOS 判断设备是否安装SIM卡

iOS 判断设备是否安装SIM卡

作者: 半碗水的漩涡 | 来源:发表于2017-12-20 20:59 被阅读0次

    找了好多方法测试手机是否存在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 <CoreTelephony/CTTelephonyNetworkInfo.h>

    #import <CoreTelephony/CTCarrier.h>

    添加方法如下:

    // 判断设备是否安装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卡

          本文链接:https://www.haomeiwen.com/subject/vcynwxtx.html