Abd*_*tou 9 iphone ios core-telephony
我正在使用本主题中的答案.iPhone - 如何确定设备的运营商(AT&T,Verizon等?),这与获取iphone中的运营商详细信息相同.虽然使用SIM卡时工作正常,但如果没有SIM卡,则返回的运营商名称是旧的运营商名称.它未检测到SIM已被删除.
我知道这与Apple文档相矛盾,如果没有载体,CTCarrier对象应为零.但在我的应用程序中,我记录了运营商信息,它给了我最新的运营商名称,虽然没有安装SIM卡.
Eva*_*ski 11
根据该文件为[CTCarrier carrierName]:
如果为运营商配置设备,然后移除SIM卡,则此属性将保留运营商的名称.
据我所知,您无法检测SIM卡是否已安装.您只能使用确定WWAN连接是否可用Reachability.
@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;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
所述CTCarrier对象具有5个属性:
allowsVOIP
carrierName
isoCountryCode
mobileCountryCode
mobileNetworkCode
Run Code Online (Sandbox Code Playgroud)
我已经对CTCarrier做了一些测试,我得出的结论是,对于iOS 7,只有当删除SIM时才会保留carrierName和allowsVOIP.isoCountryCode,mobileCountryCode和mobileNetworkCode将针对iOS 7重置.这就是您可以检测SIM是否存在的方法.
对于iOS 6,保留所有值.
我使用运行iOS 7的iPhone 4S和iPhone 5进行了测试.
| 归档时间: |
|
| 查看次数: |
13809 次 |
| 最近记录: |