用特殊字符在Android上发起电话呼叫#

时间:2011-01-27 11:34:10

标签: android phone-call

我使用以下代码从Android应用程序中启动一个调用:

intent.setData(Uri.parse("tel:+12345 #123"));
startActivity(intent);

当它开始通话时,它会忽略以#。

开头的所有内容

我读到了一些关于修改SpecialCharSequenceMgr.java文件的内容,但我无法在任何地方找到它,老实说,不知道究竟要做什么。解决这个问题的最佳方法是什么?

4 个答案:

答案 0 :(得分:12)

我认为问题在于#符号在URI中具有特殊含义,因此您必须使用Uri.encode()方法对其进行编码,如下所示:

    Intent out = new Intent();
    out.setAction(Intent.ACTION_DIAL);
    out.setData(Uri.parse("tel:" + Uri.encode("+12345#123")));
    startActivity(out);

答案 1 :(得分:4)

我相信乔恩在你的问题上并不完全正确,但这个想法并不是那么糟糕,尽管...... 您需要使用特殊字符映射来启动井号键:

Intent intcall = new Intent(Intent.ACTION_CALL);
intcall.setData(Uri.parse("tel:5555" + "%23"+"additional number"));
startActivity(intcall);

答案 2 :(得分:0)

Intent out = new Intent();

out.setAction(Intent.ACTION_DIAL);

out.setData(Uri.parse(“tel:”+ Uri.encode(“+ 12345#123”)));

startActivity(下);

答案 3 :(得分:0)

就这样做。这对我有用。

Uri.parse(Uri.encode("your string value"));