Thursday 15 April 2010

Send Base64 encoded data over USSD from Android -


I am trying to program an Android app that sends updates from the phone to my network provider server using USSD . The problem is that to get data from the network server on my web server, I need data in base 64 encoded datagrams. I am trying to send this data to the format * # Where the data is created, this can send me 2 figures in single figures USSD packets.

This is what I have yet

  send private zeros USS digitate (integer data 1, integer data 2) {four [] data 1CharArray = data1.toString ( ). ToCharArray (); Four [] data2harArray = data2.toString (). ToCharArray (); Integer data 1 length = data 1 charity Height * 2; Integer data 2 length = data 2 sec Height * 2; Four [] dataDataGram = new string (PID.Toosting () + data1 lang.tosting () + new string (data 1CharArray)) Kocharaire (); Four [] datadigram = new string (PID.toString () + data2Length.toString () + new string (data2harArray)). Kocharaire (); String USSDED = "* 126 * 5 *"; Byte [] data1ByteArray = new byte [data1Datagram.length * 2]; ByteBuffer.wrap (data1ByteArray) .asCharBuffer () put (data1Datagram). Byte [] data2ByteArray = new byte [data2Datagram.length * 2]; ByteBuffer.wrap (data2ByteArray) .asCharBuffer () Put (data2Datagram). Byte [] base64data1Datagram = Base64.encode (DataBitire, Base64.NO_PADDING); Byte [] base64data2Datagram = Base64.encode (DataBitire, Base64.NO_PADDING); Byte [] dat = new byte [base64data1Datagram.length + base64data2Datagram.length]; Int i = 0; Whereas (i and lt; base64data1Datagram.length - 1) {dat [i] = base64data1 datagram [i]; I ++; } Int j = 0; Whereas (i & lt; dat.length - 1) {dat [i] = base64data2 datagram [j]; I ++; } {Intent ussdIntent = try new intent (Intent.ACTION_CALL); UssdIntent.setFlags (Intent.FLAG_ACTIVITY_NO_ANIMATION); UssdIntent.setFlags (Intent.FLAG_ACTIVITY_NO_USER_ACTION); UssdIntent.setFlags (Intent.FLAG_FROM_BACKGROUND); Uri Uri = Uri Frantparts ("Tele," USSD + DAT, Encoded Hush); System.err.println (URI); UssdIntent.setData (URI); Act.startActivity (ussdIntent); } Hold (exception e) {System.err.println (e.getMessage ()); E.printStackTrace (); }}    

with intent. Action_CALL Your base 64 text will be converted to numerical A, B, C to 2, D, E, F3 and so on (default behavior of outgoing client receiver). Therefore, there is no way to send text data through the USSD in Android (at least with standard methods) ...

No comments:

Post a Comment