Как проверить, установлена ли сим-карта или нет
Я занимаюсь разработкой приложения, в котором есть функция вызова и сообщения, и я хочу проверить, установлена ли SIM-карта или нет, потому что я сталкиваюсь с проблемой обмена сообщениями, так как она выдает предупреждения для "Сообщение отправлено успешно"
Пожалуйста, помогите мне.
3 ответа
Там могут быть разные способы, но один из них заключается в использовании MFMessageComposeViewController
класс, чтобы увидеть, если вы можете отправить текстовое сообщение. Если вы можете, то сим доступен, иначе нет.
if ([MFMessageComposeViewController canSendText]) {
NSLog(@"SIM Available");
} else {
NSLog(@"no SIM card installed");
}
В случае, если у вас есть доступ к iMessage, это может вернуть вам значение true, вы также можете проверить, можете ли вы позвонить, возможно, вы захотите использовать CTTelephonyNetworkInfo
для этой цели.
Вы также можете проверить, используя, как это.... Сначала прочитайте этот документ
NSString *_code = [[[CTCarrier alloc] init] mobileCountryCode];
Значение для этого свойства равно nil, если применимо любое из следующего:
Устройство находится в режиме полета. В устройстве нет SIM-карты. Устройство находится вне зоны действия сотовой связи.
Сначала вы должны убедиться, что это устройство iPhone (а не iPod или iPad), а затем проверить, может ли устройство совершать вызовы, просто так............
if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:123456"]])
{
NSLog(@"Device can make call or send message");
}
else
{
NSLog(@"Device can not make call or send message");
}
}
else
{
NSLog(@"Device can not make call or send message");
}
Надеюсь, это поможет вам........