iniciar una llamada telefónica en Android con el carácter especial #

Utilizo el siguiente código para iniciar una llamada desde la aplicación de Android:

intent.setData(Uri.parse("tel:+12345 #123")); startActivity(intent); 

Mientras comienza la llamada, ignora todo comenzando con el #.

Leí algo sobre la modificación del archivo SpecialCharSequenceMgr.java, pero no puedo encontrarlo en ninguna parte y, honestamente, no sé exactamente qué tiene que hacer uno. ¿Cuál es la mejor manera de resolver esto?

Creo que el problema es que el símbolo # tiene un significado especial en los URI, por lo que debes codificarlo usando el método Uri.encode() como este:

  Intent out = new Intent(); out.setAction(Intent.ACTION_DIAL); out.setData(Uri.parse("tel:" + Uri.encode("+12345#123"))); startActivity(out); 

Creo que Jon no tiene toda la razón en tu pregunta, la idea no era tan mala, sin embargo … Debes usar un mapa de caracteres especial para iniciar la tecla de la libra:

 Intent intcall = new Intent(Intent.ACTION_CALL); intcall.setData(Uri.parse("tel:5555" + "%23"+"additional number")); startActivity(intcall); 

Intento = nuevo Intento ();

out.setAction (Intent.ACTION_DIAL);

out.setData (Uri.parse (“tel:” + Uri.encode (“+ 12345 # 123”)));

startActivity (fuera);

solo haz esto. funcionó para mí.

 Uri.parse(Uri.encode("your string value"));