Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid http get request in broadcast receiver
    primarykey
    data
    text
    <p>I'm new to android and need help, as the question states i want to have a background service that listens to incoming smses(using broadcast receiver?) and then makes a http get request with sms body and phone number for each sms as soon as it arrives(to upload to a web server), trying to do this from scratch, ideas and code examples anyone ? :)</p> <pre><code>public class ReceiverContainer extends Service{ public SMSreceiver mSMSreceiver; public IntentFilter mIntentFilter; @Override public void onCreate() { super.onCreate(); //SMS event receiver mSMSreceiver = new SMSreceiver(); mIntentFilter = new IntentFilter(); mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED"); registerReceiver(mSMSreceiver, mIntentFilter); } @Override public void onDestroy() { super.onDestroy(); // Unregister the SMS receiver unregisterReceiver(mSMSreceiver); mSMSreceiver = null; } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } public class SMSreceiver extends BroadcastReceiver { public void Action(Context context,Intent intent) throws ClientProtocolException, URISyntaxException, IOException { Bundle myBundle = intent.getExtras(); SmsMessage [] messages = null; String strMessage = ""; String msgFrom = ""; String msgText = ""; if (myBundle != null) { Object [] pdus = (Object[]) myBundle.get("pdus"); messages = new SmsMessage[pdus.length]; for (int i = 0; i &lt; messages.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); strMessage += "SMS From: " + messages[i].getOriginatingAddress(); msgFrom += messages[i].getOriginatingAddress(); strMessage += " : "; strMessage += messages[i].getMessageBody(); msgText += messages[i].getMessageBody(); strMessage += "\n"; } Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show(); uploadMessage(context,msgFrom,msgText); } } @Override public void onReceive(Context context, Intent intent) { try { Action(context,intent); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void uploadMessage(Context context,String number,String msg) throws URISyntaxException, ClientProtocolException, IOException { HttpResponse response = null; HttpClient client = new DefaultHttpClient(); Uri.Builder path = new Uri.Builder(); path.scheme("http"); path.authority("technonectar11.com"); path.path("sms"); path.appendQueryParameter("fromno" , number); path.appendQueryParameter("text" , msg); path.appendQueryParameter("uname" , "vijay"); HttpGet request = new HttpGet(path.build().toString()); //request.setURI(new URI("http://www.technonectar11.com/sms/insertsms?fromno="+number+"&amp;text="+msg+"&amp;uname=vijay")); response = client.execute(request); String result = convertStreamToString(response.getEntity().getContent()); Toast.makeText(context, result, Toast.LENGTH_SHORT).show(); } public static String convertStreamToString(InputStream inputStream) throws IOException { if (inputStream != null) { Writer writer = new StringWriter(); char[] buffer = new char[1024]; try { Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"),1024); int n; while ((n = reader.read(buffer)) != -1) { writer.write(buffer, 0, n); } } finally { inputStream.close(); } return writer.toString(); } else { return ""; } </code></pre> <p>} }</p> <p>this is my code in its entirety, but the upload message function does not work</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload