2011-01-03 7 views
11

Мне нужно позвонить программно в мое приложение одним нажатием кнопки.Как сделать программный вызов?

для этого я нашел код вроде этого.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:1-800-555-1212"]]; 

Является ли это работать в iPhone SDK 3.0 и Iphone 2.0 также

Могут ли Просьба помочь

Спасибо и заранее.

ответ

48

Сохраните номер телефона в отдельной строке.

NSString *phoneNumber = @"1-800-555-1212"; // dynamically assigned 
NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber]; 
NSURL *phoneURL = [NSURL URLWithString:phoneURLString]; 
[[UIApplication sharedApplication] openURL:phoneURL]; 
+0

Работает ли в 3.0.2.0 os – MaheshBabu

+0

@MaheshBabu: Извините, человек .. Не знаю .. Но я думаю, это сработает. – EmptyStack

+0

Это работает только на iPhone. 3.2 будет iPad, поэтому технически он не будет работать на 3.2. – WrightsCS

1
NSLog(@"Phone calling..."); 

     UIDevice *device = [UIDevice currentDevice]; 

     NSString *cellNameStr = [NSString stringWithFormat:@"%@",self.tableCellNames[indexPath.row]]; 

     if ([[device model] isEqualToString:@"iPhone"]) { 

      NSString *phoneNumber = [@"tel://" stringByAppendingString:cellNameStr]; 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

     } else { 

      UIAlertView *warning =[[UIAlertView alloc] initWithTitle:@"Note" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

      [warning show]; 
     } 

// VKJ

0

следующие проверки фрагмента кода, если SIM-карта присутствует или нет, а если устройство способно сделать вызов, таких как не-сим Ios устройств

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 
#import <CoreTelephony/CTCarrier.h> 


    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. 
    } 

не забудьте добавить Рамочную CoreTelephony

Credit