我使用以下代码从Android应用程序中启动一个调用:
intent.setData(Uri.parse("tel:+12345 #123"));
startActivity(intent);
当它开始通话时,它会忽略以#。
开头的所有内容我读到了一些关于修改SpecialCharSequenceMgr.java文件的内容,但我无法在任何地方找到它,老实说,不知道究竟要做什么。解决这个问题的最佳方法是什么?
答案 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"));