In my android app, I want to dial an ussd code something like -- *123*1*0.5# -- the code i'm using is like this
Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + Uri.encode( "*123*1*"+"0.5"+"#")));
And i know that's working cause i Log it, and i got the right expresion, but when the dialer of the phone opens, it erase the dot and show me this. *123*1*05# - YOU CAN SEE THE DOT IS MISSING.
The first it's not an encoding problem , in fact the dot is one of the unreserved characters that UTF-8 leaves untouch.
A probable solution to this problem might be answer #2 of this post... How to send a USSD code containing decimal floating point (.)? wich is overwrite the intent for NEW_OUTGOING_CALL but i tried and didn't work. Does anyone has a solution for this.
Remember the problem it's not about the encoding, is about changing the number that the dial Intent is getting.