我有一个能够发送消息的 iPhone 应用程序。我想在 iPhone 中没有 SIM 卡时提醒用户。所以我尝试了以下三个功能来检查SIM卡可用性
Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if([messageClass canSendText]){
// Sim available
NSLog(@"Sim available");
}
else{
//Sim not available
NSLog(@"Sim not available");
}
if([MFMessageComposeViewController canSendText]){
// Sim available
NSLog(@"Sim available");
}
else{
//Sim not available
NSLog(@"Sim not available");
}
if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:123456"]])
{
NSLog(@"Sim available");
}
else
{
NSLog(@"Sim not available");
}
}
我检查过我的 iPhone 没有 sim,它总是返回@“Sim available”。但是,当我打开默认的“消息”应用程序并尝试发送短信时,它显示警报“未安装 SIM 卡”...此消息应用程序如何检测 SIM 卡可用性?
您可以通过 CTCarrier 类进行检查。
![enter image description here](https://i.stack.imgur.com/f82TZ.png)
BOOL isSimCardAvailable = YES;
CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier* carrier = info.subscriberCellularProvider;
if(carrier.mobileNetworkCode == nil || [carrier.mobileNetworkCode isEqualToString:@""])
{
isSimCardAvailable = NO;
}
您需要添加 CoreTelephony 框架才能使用 CTTelephonyNetworkInfo 和 CTCarrier。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)