【问题标题】:Intent.ACTION does not dial after first # signIntent.ACTION 在第一个 # 符号后不拨号
【发布时间】:2012-05-18 21:52:25
【问题描述】:

我正在尝试使用类似这样的长号码拨打电话。

电话:883994555,,,32343#,,,#

使用如下所示的代码。

        Intent intent = new Intent(Intent.ACTION_CALL);
        Uri uri = Uri.parse(number);
        intent.setData(uri);
        startActivity(intent);

我看到的是,在第一个“#”叹息之后电话没有拨号。任何人都知道如何使它工作。

谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    我如何让它工作是使用';' (分号)表示硬等待,而不是“w”,“,”(逗号)表示暂停,然后先对电话号码进行编码,如下所示 -

    Uri.parse(String.format("tel:%s", Uri.encode(number)))
    

    【讨论】:

    • # 需要转义是的。 :) 感谢你的回答。由于我的声誉低,我还不能投票;)
    • ...虽然我的声誉允许投票
    【解决方案2】:

    Uri.parse(String) 解析符合 RFC 2396 的编码 URI。

    RFC 2396 说:

    字符“#”被排除在外,因为 它用于将 URI 与 URI 引用中的片段标识符。

    【讨论】:

    • 那么我是否已经明确地转义了?
    • 另外,#是一个dtmf字符,所以不用转义,但是为什么电话拨号器忽略了#号后面的任何内容?
    • 这是 uri 的语法:[scheme:]scheme-specific-part[#fragment] 在“#”之后是 fragment
    猜你喜欢
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多