Skip to content Skip to sidebar Skip to footer

Any Way To Get The Sender Phone Number From A Received Sms On Android?

I wrote send and receive sms program sucsessfully but I want to that checked receiver phone number in onReceive method. how can i get the sender phone number from a received sms i

Solution 1:

In the bundle object itself the sender number is received.

Solution 2:

Write this in the broadcast receiver

Bundlebundle= intent.getExtras(); 

        Object messages[] = (Object[]) bundle.get("pdus");
        SmsMessage smsMessage[] = newSmsMessage[messages.length];      

        for (intn=0; n < messages.length; n++) 
        {
            smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]); 
        }
        StringreceivedMessage= smsMessage[0].getMessageBody().toString().toUpperCase();
        StringoriginatingAddress= smsMessage[0].getOriginatingAddress();
        originatingAddress = (originatingAddress!=null && originatingAddress.length()>3)?(originatingAddress.substring(3)):("") ;

The Originating address above is actually the sender number...

EDIT

you probably used

android.telephony.gsm.SmsMessage

that is deprecated. Use this instead:

android.telephony.SmsMessage

Solution 3:

Try the following code

Don't forget to give SMS receive permission in manifest file

<uses-permissionandroid:name="android.permission.RECEIVE_SMS"></uses-permission>





public class SmsReceiver extends BroadcastReceiver{

private Intent intent;
@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub

 /* ************** BIG COMMENT STARTS *******    //---get the SMS message passed in---
    Bundle bundle = intent.getExtras(); 
    SmsMessage[] msgs = null;
    SmsMessage[] phonenum =null;//
    String str = ""; 
    String PhoneNUMBER =""; //
    if (bundle != null)
    {
        //---retrieve the SMS message received---
        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 += " :";
            str += msgs[i].getMessageBody().toString();
            str += "\n";        
        }
        //---retrieve the SMS senders number ---
        phonenum = new SmsMessage[pdus.length];
        for (int i = 0; i < phonenum.length; i++) {
            phonenum[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
            PhoneNUMBER += phonenum[i].getOriginatingAddress();
        }
        //---display the new SMS message---
        Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
        Toast.makeText(context, PhoneNUMBER, Toast.LENGTH_LONG).show();
    } 

Post a Comment for "Any Way To Get The Sender Phone Number From A Received Sms On Android?"