Intent.ACTION_CALL 忽略 android 中的“#”

Intent.ACTION_CALL is ignoring '#' in android

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

AcessNumber,CalleeNumber#

Trailing # 减少 dtmf 触发持续时间。但它不起作用(拨打电话有效但减少延迟无效)。如果我使用相同的 format 从本机 phone app 调用,它每次都有效。我三次检查了我的代码,它肯定添加了尾随 #

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());

我觉得问题就在这条线上

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

如果你解析你的缓冲区然后它会删除 # 字符尝试像这样

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

编码人员中真正常见的问题。 解决这个问题的方法是输入以下代码: 字符串编码哈希 = Uri.encode("#");

而不是 buffer.append("#"); 采用 buffer.append(编码哈希);

来自伊朗的欢呼

加布里埃尔