কম্পিউটার টিউটোরিয়াল

এন্ড্রয়েডে কোটলিন ব্যবহার করে ডুয়াল SIM মোবাইলে SMSManager দিয়ে SMS পাঠানোর পদ্ধতি

SmsManager ক্লাস ব্যবহার করে SMS পাঠানো

এই উদাহরণটি দেখায় কিভাবে কোটলিন ব্যবহার করে এন্ড্রয়েডে SmsManager ক্লাস ব্যবহার করে SMS পাঠানো যায়। ডুয়াল SIM ডিভাইসের জন্য ডিফল্ট SMS ম্যানেজার ব্যবহার করা হয়েছে। রানটাইম পারমিশন হ্যান্ডলিং করা হয়েছে।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML ফাইল কনফিগার করুন

res/layout/activity_main.xml ফাইলে নিচের কোড যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="4dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editTextNum"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="মোবাইল নম্বর লিখুন"
        android:textColor="@android:color/black" />

    <EditText
        android:id="@+id/editTextMsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="আপনার মেসেজ লিখুন"
        android:textColor="@android:color/black" />

    <Button
        android:id="@+id/btnSendMsg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="5dp"
        android:onClick="sendMessage"
        android:text="মেসেজ পাঠান" />

</LinearLayout>

ধাপ ৩: MainActivity.kt ফাইলে লজিক লিখুন

import android.Manifest
import android.content.pm.PackageManager
import android.os.Bundle
import android.telephony.SmsManager
import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat

class MainActivity : AppCompatActivity() {
    lateinit var button: Button
    lateinit var editTextNumber: EditText
    lateinit var editTextMessage: EditText
    private val permissionRequest = 101

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        editTextNumber = findViewById(R.id.editTextNum)
        editTextMessage = findViewById(R.id.editTextMsg)
        button = findViewById(R.id.btnSendMsg)
    }

    fun sendMessage(view: View) {
        val permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
        if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
            myMessage()
        } else {
            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.SEND_SMS), permissionRequest)
        }
    }

    private fun myMessage() {
        val myNumber: String = editTextNumber.text.toString().trim()
        val myMsg: String = editTextMessage.text.toString().trim()

        if (myNumber == "" || myMsg == "") {
            Toast.makeText(this, "ফিল্ড খালি রাখা যাবে না", Toast.LENGTH_SHORT).show()
        } else {
            if (TextUtils.isDigitsOnly(myNumber)) {
                val smsManager: SmsManager = SmsManager.getDefault()
                smsManager.sendTextMessage(myNumber, null, myMsg, null, null)
                Toast.makeText(this, "মেসেজ পাঠানো হয়েছে", Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(this, "সঠিক নম্বর লিখুন", Toast.LENGTH_SHORT).show()
            }
        }
    }

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == permissionRequest) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                myMessage()
            } else {
                Toast.makeText(this, "SMS পাঠাতে পারমিশন নেই", Toast.LENGTH_SHORT).show()
            }
        }
    }
}

ধাপ ৪: AndroidManifest.xml-এ SEND_SMS পারমিশন যোগ করুন

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

অ্যাপ্লিকেশন চালানোর পদ্ধতি

ডিভাইস সংযুক্ত করে Run করুন। নম্বর এবং মেসেজ লিখে "মেসেজ পাঠান" বাটনে ক্লিক করুন। পারমিশন চাইলে দিন।

  1. অ্যান্ড্রয়েডে StringWriter.append() ব্যবহার

  2. অ্যান্ড্রয়েডে মোবাইল SMS সাপোর্ট করে কিনা জানা

  3. অ্যান্ড্রয়েডে সিম সার্ভিস ইনফরমেশন (Service State) কীভাবে পেতে হয়?

  4. JavaMail API ব্যবহার করে Android-এ ইমেইল পাঠানো