首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iPhone -检测SIM卡可用性

iPhone -检测SIM卡可用性
EN

Stack Overflow用户
提问于 2012-05-08 04:46:53
回答 6查看 16.2K关注 0票数 10

我在这个主题中使用答案。与getting operator details in iphone相同的iPhone - how to determine carrier of the device (AT&T, Verizon, etc?)。虽然在使用SIM卡时工作正常,但如果没有SIM卡,则返回的运营商名称是旧运营商名称。它不会检测到SIM卡是否被移除。

我知道这与苹果的文档相矛盾,如果没有运营商,CTCarrier对象应该为零。但在我的应用程序中,我记录了运营商信息,它给了我最新的运营商名称,尽管没有安装sim。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-08 04:59:53

根据[CTCarrier carrierName]documentation

如果您为运营商配置了设备,然后移除了SIM卡,此属性将保留运营商的名称。

据我所知,您无法检测是否安装了SIM卡。您只能使用Reachability确定无线广域网连接是否可用。

票数 12
EN

Stack Overflow用户

发布于 2015-01-13 20:52:15

代码语言:javascript
运行
复制
@import CoreTelephony;

-(BOOL)hasCellularCoverage
{
    CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];
    CTCarrier *carrier = [networkInfo subscriberCellularProvider];


    if (!carrier.isoCountryCode) {
        NSLog(@"No sim present Or No cellular coverage or phone is on airplane mode.");
        return NO;
    }
    return YES;
}
票数 9
EN

Stack Overflow用户

发布于 2013-12-16 21:15:13

CTCarrier对象有5个属性:

代码语言:javascript
运行
复制
allowsVOIP
carrierName
isoCountryCode
mobileCountryCode
mobileNetworkCode

我做了一些关于CTCarrier的测试,我得出的结论是,对于iOS 7,当SIM卡被移除时,只有carrierName和allowsVOIP被保留。isoCountryCode、mobileCountryCode和mobileNetworkCode都为iOS 7进行了重置。这就是你检测SIM卡是否存在的方法。

对于iOS 6,所有值都将保留。

我使用的是运行iOS 7的iPhone 4S和iPhone 5进行测试。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10488898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档