【发布时间】:2018-09-05 20:04:30
【问题描述】:
String num= "*345*20#";
Intent callintent = new Intent(Intent.ACTION_DIAL);
callintent.setData(Uri.parse("tel:"+num));
startActivity(callintent);
在上面的代码中,当我使用带有“#”的数字时,“#”会自动从数字中删除。我该如何解决?
请帮助我。谢谢。
【问题讨论】:
String num= "*345*20#";
Intent callintent = new Intent(Intent.ACTION_DIAL);
callintent.setData(Uri.parse("tel:"+num));
startActivity(callintent);
在上面的代码中,当我使用带有“#”的数字时,“#”会自动从数字中删除。我该如何解决?
请帮助我。谢谢。
【问题讨论】:
试试下面的:
String num= "*345*20#";
Intent callintent = new Intent(Intent.ACTION_DIAL);
callintent.setData(Uri.parse("tel:"+ Uri.encode(num)));
startActivity(callintent);
【讨论】:
当您的 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 进行百分比编码。
请参阅此处了解更多信息:
【讨论】: