您如何通过 iPhone SDK 以编程方式执行以下操作:
通过 iPhone SDK 以编程方式拨打电话号码
绕过 iPhone 调出的拨号/取消提示
拨打号码后发送额外的 DTMF,就像您将暂停编程到普通电话中一样。
我知道您可以tel://
拨打电话,但问题是它会显示拨号/取消提示,然后会阻止发送任何未来的 DTMF。
您如何通过 iPhone SDK 以编程方式执行以下操作:
通过 iPhone SDK 以编程方式拨打电话号码
绕过 iPhone 调出的拨号/取消提示
拨打号码后发送额外的 DTMF,就像您将暂停编程到普通电话中一样。
我知道您可以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]];
这将绕过拨号/取消提示拨打电话号码... 接听电话 1 秒后,将自动拨打 dtmfAfterPickup 字符串。
检测设备是否支持电话呼叫是个好主意
根据上面 Adam 的 Apple 开发人员链接,有这个 RFC 链接,它解释了有关 iPhone 支持的电话链接方案的不同选项的更多信息 -
http://www.ietf.org/rfc/rfc2806.txt
这至少允许您在 URL 中插入带有“p”的暂停,但是根据 RFC 指定了很多选项(但并非全部都是必需的)。还有什么作用?
我尝试使用我的 iPhone 使用 CoronaSDK 和 openurl API。它工作得很好!只需执行:system.openURL("tel:[phonenumber],123")。您可以使用附加逗号等待更多。使用 Corona SDK / iOS7 测试。
其实我只是尝试了以下555-555-4822 EXT 8030
即使在按下拨号后,它似乎也会发出一些音调(p 的数量代表延迟的秒数)。然而,音调并没有像预期的那样在远端得到响应,所以还是有问题。
但是,这确实有效,尽管它更容易出现计时问题,电话:555-555-4822, 8030。这只是在连接后暂停一秒钟(,,将是两秒钟),然后播放 8030 音调
你不能这样做。SDK 不允许您在此详细级别控制电话功能。