【发布时间】:2010-10-09 17:43:09
【问题描述】:
您如何通过 iPhone SDK 以编程方式执行以下操作:
通过 iPhone SDK 以编程方式拨打电话号码
绕过 iPhone 调出的拨号/取消提示
在拨打号码后发送额外的 DTMF,就像在普通电话中设置暂停一样。
我知道您可以拨打tel:// 电话,但问题是它会显示拨号/取消提示,然后会阻止发送任何未来的 DTMF。
【问题讨论】:
标签: ios phone-call
您如何通过 iPhone SDK 以编程方式执行以下操作:
通过 iPhone SDK 以编程方式拨打电话号码
绕过 iPhone 调出的拨号/取消提示
在拨打号码后发送额外的 DTMF,就像在普通电话中设置暂停一样。
我知道您可以拨打tel:// 电话,但问题是它会显示拨号/取消提示,然后会阻止发送任何未来的 DTMF。
【问题讨论】:
标签: ios phone-call
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 字符串会自动拨号。
【讨论】:
根据上面 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 不允许您在此详细级别控制电话功能。
【讨论】: