Practical 29
Practical 29
1: Write a program to send and receive SMS, make use of following GUI:
Java File:
package com.example.practical29;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize UI components
txtMobile = findViewById(R.id.mblTxt);
txtMessage = findViewById(R.id.msgtxt);
btnSms = findViewById(R.id.btnSend);
// Send SMS
private void sendSms() {
String mobileNumber = txtMobile.getText().toString().trim();
String message = txtMessage.getText().toString().trim();
if (message.isEmpty()) {
Toast.makeText(this, "Please enter a message", Toast.LENGTH_SHORT).show();
return;
}
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(mobileNumber, null, message, null, null);
Toast.makeText(this, "SMS Sent Successfully!", Toast.LENGTH_SHORT).show();
Log.d(TAG, "SMS sent to: " + mobileNumber + " | Message: " + message);
} catch (Exception e) {
Toast.makeText(this, "SMS Failed to Send. Please try again.", Toast.LENGTH_SHORT).show();
Log.e(TAG, "SMS sending failed: ", e);
}
}
}
Activity file:
</androidx.constraintlayout.widget.ConstraintLayout>
Manifest File:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Practical29">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Output: