我用下面的代码从Android应用程序内发起呼叫的Android电话:启动与特殊字符#
intent.setData(Uri.parse("tel:+12345 #123"));
startActivity(intent);
虽然开始呼叫,它忽略了一切开始与#。
我读一些有关修改SpecialCharSequenceMgr.java文件,但我不能找到这个任何地方,老实说不知道到底是什么一个必须做的。解决这个问题的最好方法是什么?
我用下面的代码从Android应用程序内发起呼叫的Android电话:启动与特殊字符#
intent.setData(Uri.parse("tel:+12345 #123"));
startActivity(intent);
虽然开始呼叫,它忽略了一切开始与#。
我读一些有关修改SpecialCharSequenceMgr.java文件,但我不能找到这个任何地方,老实说不知道到底是什么一个必须做的。解决这个问题的最好方法是什么?
我相信这个问题是该#符号具有URI中有特殊的意义,所以你必须使用Uri.encode()
方法这样对它进行编码:
Intent out = new Intent();
out.setAction(Intent.ACTION_DIAL);
out.setData(Uri.parse("tel:" + Uri.encode("+12345#123")));
startActivity(out);
我相信,乔恩并不是完全正确的你的问题,当时的想法是没有那么糟糕,但... 您需要使用特殊字符映射发起井号键:
Intent intcall = new Intent(Intent.ACTION_CALL);
intcall.setData(Uri.parse("tel:5555" + "%23"+"additional number"));
startActivity(intcall);
意向OUT =新意图();
out.setAction(Intent.ACTION_DIAL);
out.setData(Uri.parse( “电话:” + Uri.encode( “+ 12345#123”)));
startActivity(out);
感谢您的快速回复。这会导致电话屏幕打开并显示正确的号码(包括特殊字符),但不会再开始呼叫。必须手动按下绿色电话按钮。有没有一种方法可以在不手动按下按钮的情况下启动呼叫?非常感谢... – user387184 2011-01-27 12:14:19