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?"