Practical NO 29
Practical NO 29
• activity_main.xml
<RelativeLayout android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/ android:layout_height="wrap_content"
apk/res/android" android:hint="Enter message"
android:inputType="text"
xmlns:tools="http://schemas.android.com/to android:padding="12dp"
ols"
android:layout_width="match_parent" android:layout_below="@id/editTextPhone"
android:layout_height="match_parent" android:layout_marginTop="10dp" />
tools:context=".MainActivity">
<Button
<EditText android:id="@+id/buttonSend"
android:id="@+id/editTextPhone" android:layout_width="wrap_content"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:text="Send SMS"
android:hint="Enter phone number"
android:inputType="phone" android:layout_below="@id/editTextMessag
android:padding="12dp" e"
android:layout_marginTop="50dp" /> android:layout_marginTop="20dp"
android:layout_centerHorizontal="true" />
<EditText </RelativeLayout>
android:id="@+id/editTextMessage"
• MainActivity.java
package com.example.twentynine;
private EditText editTextPhone,
import android.Manifest; editTextMessage;
import android.content.IntentFilter; private Button buttonSend;
import android.content.pm.PackageManager;
import android.os.Bundle; @Override
import android.telephony.SmsManager; protected void onCreate(Bundle
import android.view.View; savedInstanceState) {
import android.widget.Button; super.onCreate(savedInstanceState);
import android.widget.EditText; setContentView(R.layout.activity_main);
import android.widget.Toast;
editTextPhone =
import androidx.annotation.NonNull; findViewById(R.id.editTextPhone);
import editTextMessage =
androidx.appcompat.app.AppCompatActivity; findViewById(R.id.editTextMessage);
import androidx.core.app.ActivityCompat; buttonSend =
import androidx.core.content.ContextCompat; findViewById(R.id.buttonSend);
loginButton.setEnabled(isUsernameValid &&
• SMSReceiver.java
• AndroidManifest.xml
<manifest android:name="android.permission.RE
xmlns:android="http://schemas.android. AD_SMS" />
com/apk/res/android"
<application
package="com.example.twentynine"> android:allowBackup="true"
android:supportsRtl="true"
<!-- Permissions for sending and android:label="SMS App"
receiving SMS -->
<uses-permission android:theme="@style/Theme.AppCo
android:name="android.permission.SE mpat.Light.DarkActionBar">
ND_SMS" />
<uses-permission <!-- MainActivity with explicit
android:name="android.permission.RE android:exported -->
CEIVE_SMS" />
<activity
<uses-permission
android:name=".MainActivity" CEIVE_SMS" />
android:exported="true"> <uses-permission
<intent-filter> android:name="android.permission.RE
<action AD_SMS" />
android:name="android.intent.action.M
AIN" /> <application
<category android:allowBackup="true"
android:name="android.intent.category. android:supportsRtl="true"
LAUNCHER" /> android:label="SMS App"
</intent-filter>
</activity> android:theme="@style/Theme.AppCo
mpat.Light.DarkActionBar">
<!-- Register SMSReceiver with
explicit android:exported --> <!-- MainActivity with explicit
<receiver android:exported -->
android:name=".SMSReceiver" <activity
android:name=".MainActivity"
android:permission="android.permissio android:exported="true">
n.BROADCAST_SMS" <intent-filter>
android:exported="true"> <action
<intent-filter> android:name="android.intent.action.M
<action AIN" />
android:name="android.provider.Teleph <category
ony.SMS_RECEIVED" /> android:name="android.intent.category.
</intent-filter> LAUNCHER" />
</receiver> </intent-filter>
</activity>
</application>
<!-- Register SMSReceiver with
</manifest> <manifest explicit android:exported -->
xmlns:android="http://schemas.android. <receiver
com/apk/res/android" android:name=".SMSReceiver"
package="com.example.twentynine"> android:permission="android.permissio
n.BROADCAST_SMS"
<!-- Permissions for sending and android:exported="true">
receiving SMS --> <intent-filter>
<uses-permission <action
android:name="android.permission.SE android:name="android.provider.Teleph
ND_SMS" /> ony.SMS_RECEIVED" />
<uses-permission </intent-filter>
android:name="android.permission.RE </receiver>
</application>
</manifest>
Output: