Saturday, October 8, 2011

Listening incoming sms message in Android

The following code shows "how to get notification when android mobile receive a message"

We will use only Broadcast Receiver's method not any URI query or something else.

So let's create a simple android app, then delete default Activity and create new java class
which extends Broadcast-receiver  look like this
package com.rdc;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;

public class SMSNotification extends BroadcastReceiver {
  public void onReceive(Context context, Intent intent) {  
  Toast.makeText(context,"Wow! we got a Message :)",Toast.LENGTH_SHORT).show();
 Bundle bundle = intent.getExtras();
 SmsMessage[] msgs = null;
 String str = "";
 if(bundle != null){
  Object[] pdus = (Object[]) bundle.get("pdus");
  msgs = new SmsMessage[pdus.length];
  for(int i=0; i<msgs.length;i++){
   msgs[i]= SmsMessage.createFromPdu((byte[])pdus[i]);
   str += "SMS from: " +msgs[i].getOriginatingAddress();
   str +="\n"+"Message is:";
   str += msgs[i].getMessageBody().toString();
   str +="\n";
  Log.v("Debug", str);
  Toast.makeText(context, str, Toast.LENGTH_SHORT).show();





output is like this


I'd love to hear your thoughts!

No comments:

Post a Comment