以编程方式拨打电话号码并使用iPhone SDK传递DTMF
你如何编程从iPhone SDK中执行以下操作:
-
以编程方式通过iPhone SDK拨打电话号码
-
绕过iPhone提示的拨号/取消提示
-
在拨打号码之后发送额外的DTMF,就像您将暂停拨入普通电话一样。
我知道你可以拨打电话,但问题是它会提示拨号/取消提示,之后会阻止任何未来的DTMF发送。
iPhone SDK不允许你直接拨打电话号码(想象一下,如果你的手机上有一个'坏'程序,并拨打了每分钟付费静音,所以你没有注意到)。
但是,如果使用tel连接,则应该可以发送“,”插入暂停的字符。
所以要拨打555-1212,然后等待4秒钟,然后按12345#键就可以使用电话:5551212,12345#
-亚当
我不知道为什么每个人都说你不能…你可以!
NSString *phoneNumber = @"15555551212"; NSString *dtmfAfterPickup = @"1234"; NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];
这将拨打电话号码绕过拨号/取消提示… 1秒钟后,电话应答, dtmfAfterPickupstring将自动拨号。
它是一个好主意,以检测设备是否支持电话
根据上面的亚当的苹果开发者链接,这个RFC链接解释了更多关于iPhone支持的电话链接scheme的不同选项 –
http://www.ietf.org/rfc/rfc2806.txt
这至less可以让你在URL中插入一个'p'的暂停,但是每个RFC指定了很多选项(但不是全部都是必需的)。 还有什么作用?
我尝试用我的iPhone使用CoronaSDK和openurl API。 它工作得很好! 只要做:system.openURL(“tel:[phonenumber],123”)。 您可以使用附加逗号等待更多。 经过Corona SDK / iOS7testing。
其实我只是试了下面的555-555-4822 EXT 8030
而且,即使在按下拨号键后,它似乎也传送一些音(p的数字表示延迟秒数)。 然而,音调并没有像预期的那样在远端得到响应,所以还是有些不妥。
然而,这样做还是有效的,但是它更容易出现计时问题,电话号码是:555-555-4822,8030。连接后暂停一秒(即两秒钟),然后播放8030音调
你不能这样做。 该SDK不允许您在这个级别的细节中控制电话function。