Intent.ACTION_CALL忽略了android中的'#'

时间:2015-08-18 11:32:44

标签: android phone-call

我正尝试使用以下格式从我的应用程序调用。

AcessNumber,CalleeNumber#

尾随#减少dtmf触发器持续时间。但它没有工作(打电话有效,但减少延迟不起作用)。如果我使用相同的phone app来自原生format,则每次都有效。我对我的代码进行了三重检查,它确实添加了尾随#

final Intent callIntent = new Intent(Intent.ACTION_CALL);
StringBuilder buffer = new StringBuilder();
buffer.append("tel:");
buffer.append(accessNumber);
buffer.append(",");
buffer.append(number);
buffer.append("#");
callIntent.setData(Uri.parse(buffer.toString());
startActivity(callIntent);
Log.e("caller number", callIntent.getData().toString());

2 个答案:

答案 0 :(得分:1)

编码员之间真正常见的问题。 您需要解决此问题的方法是输入以下代码:     String encodedhash = Uri.encode("#");

而不是      buffer.append("#&#34); 使用      buffer.append(encodedHash);

来自伊朗的欢呼声

加布里埃尔

答案 1 :(得分:0)

我觉得这个问题就在这条线上

callIntent.setData(Uri.parse(buffer.toString());

如果您解析缓冲区,那么它将删除#字符尝试,而不是像这样

callIntent.setData((Uri.parse(buffer.toString())+"#");