How to receive Sms in android/SMSReceiver in android
We can create a sample smsreceiver application, so that whenever a new sms comes to the mobile, our app will display a toast about the message.
In this example, you need not to create an activity. The only class needed is Broadcast Receiver. Broadcast Receiver will wait for a desired intent and executes when the condition reached. In our example, the broadcast receiver will automatically loads whenever an sms is received. To do this, you need to create intent filter in your manifest file
<intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> |
Smsreceiver.java
package com.example.smsreceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.widget.Toast; public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //---get the SMS message passed in--- Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; String str = ""; 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"; } //---display the new SMS message--- Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); } } } |
SmsReceiver Manifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.smsreceiver" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECEIVE_SMS"> <application android:icon="@drawable/icon" android:label="@string/app_name"><receiver android:name=".SmsReceiver" android:label="@string/app_name"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> </application> </manifest> |
See more
Send sms in android
Comments
Post a Comment