如何以编程方式从iPhone SDK执行以下操作:
我知道你可以进行tel://
通话,但问题是它会调出拨号/取消提示,之后它会阻止任何未来的DTMF被发送。
iPhone SDK不允许您直接访问拨号号码(想象一下,如果手机上有“坏”程序,并且静音拨打了每分钟付费号码,那么您就没有注意到)。
但是,如果您使用tel链接,那么您应该能够发送“,”插入暂停的字符。
所以要拨打555-1212,然后等待4秒,然后按触摸音做12345#你会用tel:5551212 ,, 12345#
我不知道为什么每个人都说你不能......你可以!
NSString *phoneNumber = @"15555551212";
NSString *dtmfAfterPickup = @"1234";
NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];
这将拨打phoneNumber绕过拨号/取消提示...在应答呼叫后1秒钟,将自动拨打dtmfAfterPickup字符串。
对detect whether or not the device support phone calls来说这是一个好主意
根据上面的Adam的Apple开发人员链接,这个RFC链接解释了有关iPhone支持的电话链接方案的不同选项的更多信息 -
http://www.ietf.org/rfc/rfc2806.txt
这至少允许您在URL中插入带有'p'的暂停,但是根据RFC指定了很多选项(但并非所有选项都是必需的)。还有什么用?
我使用CoronaSDK和openurl API尝试使用我的iPhone。它运作得很好!只需:system.openURL(“tel:[phonenumber],123”)。您可以使用附加逗号等待更多内容。使用Corona SDK / iOS7进行测试。
实际上,我刚尝试了以下555-555-4822 EXT 8030
并且即使在按下拨号后它似乎也传输了一些音调(p的数量表示延迟的秒数)。然而,音调没有按预期在远端响应,所以有些事情仍然存在问题。
然而,这确实有效,虽然它更容易出现计时问题,电话:555-555-4822,8030。这只是在连接后暂停一秒钟(,即两秒钟),然后播放8030音调
你不能这样做。 SDK不允许您在此详细级别中控制电话功能。