Blog purpose for android basic example for android app developer. any query please my contact

Wednesday, 30 March 2022

android kotlin broadcast receiver sms

 android kotlin broadcast receiver sms


AndroidManifest.xml:


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.androidexample.broadcastreceiver"

    android:versionCode="1"

    android:versionName="1.0" >

        

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name="com.androidexample.broadcastreceiver.BroadcastNewSms"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

         

        <receiver android:name="com.androidexample.broadcastreceiver.IncomingSms">  

            <intent-filter>

                <action android:name="android.provider.Telephony.SMS_RECEIVED" />

            </intent-filter>

        </receiver>

         

    </application>

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="17" />

     

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

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

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

     

</manifest>




  IncomingSms.java:



public class IncomingSms extends BroadcastReceiver {

     

    // Get the object of SmsManager

    final SmsManager sms = SmsManager.getDefault();

     

    public void onReceive(Context context, Intent intent) {

     

        // Retrieves a map of extended data from the intent.

        final Bundle bundle = intent.getExtras();

 

        try {

             

            if (bundle != null) {

                 

                final Object[] pdusObj = (Object[]) bundle.get("pdus");

                 

                for (int i = 0; i < pdusObj.length; i++) {

                     

                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);

                    String phoneNumber = currentMessage.getDisplayOriginatingAddress();

                     

                    String senderNum = phoneNumber;

                    String message = currentMessage.getDisplayMessageBody();

 

                    Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);

                     

 

                   // Show Alert

                    int duration = Toast.LENGTH_LONG;

                    Toast toast = Toast.makeText(context,

                                 "senderNum: "+ senderNum + ", message: " + message, duration);

                    toast.show();

                     

                } // end for loop

              } // bundle is null

 

        } catch (Exception e) {

            Log.e("SmsReceiver", "Exception smsReceiver" +e);

             

        }

    }   

}

 


No comments:

Post a Comment