30

您如何通过 iPhone SDK 以编程方式执行以下操作:

  1. 通过 iPhone SDK 以编程方式拨打电话号码

  2. 绕过 iPhone 调出的拨号/取消提示

  3. 拨打号码后发送额外的 DTMF,就像您将暂停编程到普通电话中一样。

我知道您可以tel://拨打电话,但问题是它会显示拨号/取消提示,然后会阻止发送任何未来的 DTMF。

4

6 回答 6

32

iPhone SDK 不能让您直接访问拨号号码(想象一下,如果您的手机上有一个“坏”程序,并且在静音状态下拨打了按分钟计费的号码,而您没有注意到)。

但是,如果您使用 tel 链接,那么您应该能够发送插入暂停的“,”字符。

所以拨打 555-1212,然后等待 4 秒,然后在按键音上执行 12345#,您将使用 tel:5551212,,12345#

查看 https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

于 2009-02-25T04:00:20.953 回答
18

我不知道为什么每个人都说你不能......你可以

NSString *phoneNumber = @"15555551212";
NSString *dtmfAfterPickup = @"1234";
NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];

这将绕过拨号/取消提示拨打电话号码... 接听电话 1 秒后,自动拨打 dtmfAfterPickup 字符串

检测设备是否支持电话呼叫是个好主意

于 2011-02-09T09:57:07.013 回答
2

根据上面 Adam 的 Apple 开发人员链接,有这个 RFC 链接,它解释了有关 iPhone 支持的电话链接方案的不同选项的更多信息 -

http://www.ietf.org/rfc/rfc2806.txt

这至少允许您在 URL 中插入带有“p”的暂停,但是根据 RFC 指定了很多选项(但并非全部都是必需的)。还有什么作用?

于 2009-07-23T02:48:22.780 回答
1

我尝试使用我的 iPhone 使用 CoronaSDK 和 openurl API。它工作得很好!只需执行:system.openURL("tel:[phonenumber],123")。您可以使用附加逗号等待更多。使用 Corona SDK / iOS7 测试。

于 2014-01-03T15:33:58.867 回答
0

其实我只是尝试了以下555-555-4822 EXT 8030

即使在按下拨号后,它似乎也会发出一些音调(p 的数量代表延迟的秒数)。然而,音调并没有像预期的那样在远端得到响应,所以还是有问题。

但是,这确实有效,尽管它更容易出现计时问题,电话:555-555-4822, 8030。这只是在连接后暂停一秒钟(,,将是两秒钟),然后播放 8030 音调

于 2009-06-15T21:58:43.003 回答
-1

你不能这样做。SDK 不允许您在此详细级别控制电话功能。

于 2009-02-25T04:00:19.703 回答