在具有特殊角色的android上发起电话呼叫#

在具有特殊角色的android上发起电话呼叫#,android,phone-call,Android,Phone Call,我使用以下代码从android应用程序中启动呼叫: intent.setData(Uri.parse("tel:+12345 #123")); startActivity(intent); 在启动调用时,它会忽略以#开头的所有内容 我读了一些关于修改SpecialCharsSequenceMgr.java文件的内容,但我在任何地方都找不到,老实说,我不知道到底要做什么。解决这一问题的最佳方法是什么?我认为问题在于#符号在Uri中有特殊含义,因此必须使用Uri.encode()方法对其进行编码,

我使用以下代码从android应用程序中启动呼叫:

intent.setData(Uri.parse("tel:+12345 #123"));
startActivity(intent);
在启动调用时,它会忽略以#开头的所有内容


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

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

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

我相信Jon在你的问题上不是完全正确的,尽管这个想法并不坏。。。 您需要使用特殊字符映射来启动磅键:

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

out.setAction(意图、动作和拨号)

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


星触觉(out)

就这么做吧。这对我很有效

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

谢谢你的快速回复。这会导致电话屏幕打开并显示正确的号码(包括特殊字符),但它不再开始通话。必须手动按下绿色电话按钮。有没有一种方法可以在不手动按下按钮的情况下启动呼叫?非常感谢…当然,你只需要使用ACTION_CALL ACTION而不是ACTION_DIAL,要使用它,你需要清单中的android.permission.CALL_PHONE权限。