14

我需要在拨号盘中包含“#”或“p”的 Android 应用程序中拨打电话。

如果我使用下一个代码:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:629941945#22412"));
    startActivity(intent);

它在没有 # 和 22412 的情况下拨打号码 629941945

如果我使用下一个代码:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:629941945p22412"));
    startActivity(intent);

它在没有“p”的情况下拨打电话:62994194522412。

有一个表格可以解决吗?

4

7 回答 7

9
Intent shortcutIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+Uri.encode("*111*2#")));
startActivity(shortcutIntent);
于 2013-01-08T08:40:34.800 回答
5

尝试tel:629941945%2322412代替tel:629941945#22412

%23将被替换为#

于 2012-09-26T04:33:15.197 回答
3

尝试使用其他符号暂停。查看http://androidforums.com/android-applications/6733-how-do-i-dial-extension.htmlhttp://code.google.com/p/android/issues/detail?id=7514 但是!正如我所见,这不是一种解决方案,这取决于手机型号

于 2012-08-02T10:04:02.223 回答
1

有些手机没有“p”字符,而是“,”(逗号),某处是“T”,如果您的手机没有这些花哨的字符,请尝试“*”或“#”。希望其中一个角色可以工作。请注意,在某些手机上,字母区分大小写,因此 P 无法使用。

于 2012-08-02T10:21:17.980 回答
1

tel URI 规范不支持暂停。

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

如另一个答案所述,%23可用于替代#.

于 2013-12-04T19:37:11.040 回答
0

您不能使用 URI 解析此类特殊数字,因为它们不符合 tel: 标准。(http://www.ietf.org/rfc/rfc3966.txt 第 6 页)您可能想要使用ACTION_DIAL并让用户可以自己输入号码。也许电话会将此解释为暂停信号 p 的目的。要发送此类暂停信号,请查看 Alex Klimashevsky 的回答。

于 2012-08-02T10:08:04.000 回答
0

尝试使用“,”(逗号)而不是 p。不知道“#”虽然,对不起。

于 2012-08-02T10:10:07.650 回答