在我们的企业iOS应用中,我们使用了
CTCallRef CTCallDial(CFStringRef number);
从应用程序执行调用(并且能够隐藏调用者ID
它在iOS 7中似乎不起作用。那里的API有变化吗?
(我完全清楚这是一个私人API调用,它可以随时更改,但我仍然希望找到替代方案。遗憾的是,我不够精明,不知道如何找到所有可用的私有API)
答案 0 :(得分:3)
我认为它需要您使用com.apple.coretelephony.Calls.allow
权利签署您的应用。我在SpringBoard二进制文件中找到了它。 Apple增加了一大堆新的权利。因此,我们应该期望许多API在没有它们的情况下无法工作。仅针对CoreTelephony,SpringBoard中有四种权利。
答案 1 :(得分:2)
我在你帖子发布2小时后在stackoverflow中问了同样的问题... 首先看一下类转储(https://github.com/EthanArbuckle/IOS-7-Headers/blob/master/Frameworks/CoreTelephony.framework/CTCall.h),表明这个函数丢失了......
答案 2 :(得分:0)
其实我尝试过和vualoaithu一样,没有运气。但我也尝试使用TUCallCenter对象的其他方法,看起来它工作正常。例如,以下方法有效:
TUCallCenter *callCenter = [TUCallCenter sharedInstance];
if(callCenter) {
NSLog(@"callCenter is created!");
//Working part
if([callCenter inCall]){
NSLog(@"IN CALL"); // when you press answer button and can talk
}else{
NSLog(@"NOT IN CALL"); // other cases
}
}
我也尝试过:
TUPhoneNumber* phoneNumber =
[TUPhoneNumber phoneNumberWithDigits:@"55555555"
countryCode:@"1"];
if(phoneNumber) {
NSLog(@"Phone Number obj = %@",phoneNumber);
NSLog(@"Phone Number = %@",phoneNumber.digits);
NSLog(@"Country Code = %@",phoneNumber.countryCode);
}
[callCenter dial:phoneNumber service:0];
但我有例外:
[TUPhoneNumber length]:无法识别的选择器发送到实例0x14dcefd0
看起来我们正在路上。如果有人会找到解决方案。请在这里发布。 感谢。
答案 3 :(得分:-1)
你可以使用
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@“tel:%@”,num]]];
但是,在通话结束后你无法关闭通话屏幕