当我使用通话意图时,会自动从号码中删除#

时间:2018-09-05 11:45:52

标签: android android-intent

String num= "*345*20#";
Intent callintent = new Intent(Intent.ACTION_DIAL);  
callintent.setData(Uri.parse("tel:"+num));   
startActivity(callintent);

在上面的代码中,当我将数字与“#”一起使用时,“#”会自动从数字中删除。我该如何解决?

请帮助我。谢谢。

2 个答案:

答案 0 :(得分:0)

请尝试以下操作:

String num= "*345*20#";
Intent callintent = new Intent(Intent.ACTION_DIAL);  
callintent.setData(Uri.parse("tel:"+ Uri.encode(num)));   
startActivity(callintent);

答案 1 :(得分:0)

当您的URI带有特殊字符(如#)时,该字符是保留字符。为了在URI中使用这些字符,您必须像这样对URI内容进行编码:

String num= "*345*20#";
Intent callintent = new Intent(Intent.ACTION_DIAL);  
callintent.setData(Uri.parse("tel:"+Uri.encode(num)));   
startActivity(callintent);

encode()方法将对URI进行百分比编码。 有关更多信息,请参见此处:

Percent Encoding

W3Schools Url Encoding