在Android中发送ACTION_CALL意图,包含哈希#标志

我遇到了散列符号被截断的问题。 有人知道解决scheme吗? 使用unicode或%23不适用于我的情况。 现在拨打的号码是* 101

String uri = "tel:" + "*101#"; //String uri = "tel:" + "*101\u0023"; Intent intent; intent = new Intent(Intent.ACTION_CALL, Uri.parse(uri)); 

Solutions Collecting From Web of "在Android中发送ACTION_CALL意图,包含哈希#标志"

find了一个解决scheme:String encodedHash = Uri.encode(“#”); 这个伎俩…

我通过replace%23中的#find了解决此问题的解决scheme

 String uri = "tel:" + "*133%23"; Intent intent; intent = new Intent(Intent.ACTION_CALL, Uri.parse(uri)); 

这会更容易;

 String no = textview.getText().toString(); if(no.contains("#")){ no = no.replace("#","%23"); } startActivity(new Intent(Intent.ACTION_CALL) .setData(Uri.parse("tel:" no))); 

一个解决scheme将是:

  String number = "*123#"; number = number.replace("*", Uri.encode("*")).replace("#",Uri.encode("#")); Intent mIntent = new Intent(Intent.ACTION_CALL); Uri data = Uri.parse("tel:" + number); mIntent.setData(data); startActivity(mIntent);