tiene solo señal salen recibe puedo porque pero llamadas llamada hacer hace error entran desvio desde ios objective-c ipad ios8

ios - solo - no puedo hacer llamadas desde mi iphone 5



¿Cómo verificar si el dispositivo puede hacer una llamada telefónica(iOS 8)? (2)

Ok, entonces acabo de encontrar el mismo problema. Parece que el iPad y el iPod devuelven el valor YES para el método canOpenURL. Por favor, mira mi respuesta a continuación, ya que esto funcionó para mí. Tenía una celda de vista de colección personalizada y es por eso que tenía este código en mi archivo awakeFromNib. Sin embargo, debe escribir este código en ViewDidLoad de ese perticular viewController.

Asegúrese de incluir "CoreTelephony.Framework" en su proyecto.

Incluya los archivos a continuación en el controlador de vista:

#import <CoreTelephony/CTTelephonyNetworkInfo.h> #import <CoreTelephony/CTCarrier.h> - (void)awakeFromNib { // Initialization code if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]]) { // Check if iOS Device supports phone calls CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init]; CTCarrier *carrier = [netInfo subscriberCellularProvider]; NSString *mnc = [carrier mobileNetworkCode]; // User will get an alert error when they will try to make a phone call in airplane mode. if (([mnc length] == 0)) { // Device cannot place a call at this time. SIM might be removed. } else { // iOS Device is capable for making calls } } else { // iOS Device is not capable for making calls } if ( ! [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"sms:"]]) { // iOS Device is not capable to send SMS messages. } }

En iOS <8 puede usar la función - (BOOL)canOpenURL:(NSURL *)url .

En iOS 8, esta función devuelve YES , incluso en iPad. Supongo que está conectado con llamadas a través de wi-fi (u otra nueva funcionalidad), pero mi iPad no puede hacer llamadas telefónicas. ¿Alguien sabe mejor manera de detectar esa capacidad?


Podrías ver si es un iPhone. Y posiblemente use esto junto con - (BOOL)canOpenURL:(NSURL *)url . De esta forma evitará dispositivos que obviamente no pueden hacer una llamada de teléfono celular.

if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone"] ) { // Make Phone Call }