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

Android-এ AlarmManager ব্যবহার করার পদ্ধতি (Kotlin)


Kotlin-এ AlarmManager দিয়ে রিপিটিং অ্যালার্ম সেট করার উদাহরণ

এই উদাহরণটি Kotlin-এ লেখা হয়েছে এবং দেখায় কিভাবে `AlarmManager` ব্যবহার করে নির্দিষ্ট সময়ে প্রতিদিন রিপিটিং অ্যালার্ম সেট করা যায়।

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

Android Studio-তে File → New Project এ যান, Kotlin সিলেক্ট করুন এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML-এ TimePicker ও বাটন যোগ করুন

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="8dp"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation="vertical">

        <TimePicker
            android:id="@+id/timePicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <Button
            android:id="@+id/buttonAlarm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="অ্যালার্ম সেট করুন"/>

    </LinearLayout>
</RelativeLayout>

ধাপ ৩: MainActivity.kt-এ Kotlin কোড লিখুন

src/MainActivity.kt ফাইলে নিচের কোডটি যোগ করুন:

import android.app.AlarmManager
import android.app.PendingIntent
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.TimePicker
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.util.Calendar

class MainActivity : AppCompatActivity() {

    lateinit var btnSetAlarm: Button
    lateinit var timePicker: TimePicker

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

        timePicker = findViewById(R.id.timePicker)
        btnSetAlarm = findViewById(R.id.buttonAlarm)

        btnSetAlarm.setOnClickListener {
            val calendar: Calendar = Calendar.getInstance()

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                calendar.set(
                    calendar.get(Calendar.YEAR),
                    calendar.get(Calendar.MONTH),
                    calendar.get(Calendar.DAY_OF_MONTH),
                    timePicker.hour,
                    timePicker.minute,
                    0
                )
            } else {
                calendar.set(
                    calendar.get(Calendar.YEAR),
                    calendar.get(Calendar.MONTH),
                    calendar.get(Calendar.DAY_OF_MONTH),
                    timePicker.currentHour,
                    currentMinute,
                    0
                )
            }

            setAlarm(calendar.timeInMillis)
        }
    }

    private fun setAlarm(timeInMillis: Long) {
        val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
        val intent = Intent(this, MyAlarm::class.java)
        val pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0)

        // প্রতিদিন রিপিট করবে
        alarmManager.setRepeating(
            AlarmManager.RTC_WAKEUP,
            timeInMillis,
            AlarmManager.INTERVAL_DAY,
            pendingIntent
        )

        Toast.makeText(this, "অ্যালার্ম সেট হয়েছে", Toast.LENGTH_SHORT).show()
    }

    // ইনার ব্রডকাস্ট রিসিভার
    private class MyAlarm : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            Log.d("Alarm Bell", "অ্যালার্ম বাজল")
            // এখানে নোটিফিকেশন বা অন্যান্য কাজ করুন
        }
    }
}

ধাপ ৪: AndroidManifest.xml কনফিগার করুন

androidManifest.xml ফাইলে নিচের কোডটি নিশ্চিত করুন (রিসিভার ডিক্লেয়ার করা আবশ্যক নয় যদি ইনার ক্লাস হয়, তবে এক্সপোর্টেড রিসিভার হলে লাগবে):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.alarmdemo">

    <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/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

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

আপনার Android ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের activity ফাইল খুলে টুলবারের Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন। TimePicker-এ সময় সিলেক্ট করে "অ্যালার্ম সেট করুন" বাটনে ক্লিক করুন।

Android-এ AlarmManager ব্যবহার করার পদ্ধতি (Kotlin)

  1. অ্যান্ড্রয়েডে LocalBroadcastManager ব্যবহারের পদ্ধতি

  2. এন্ড্রয়েডে ViewFlipper ব্যবহার করার পদ্ধতি

  3. অ্যান্ড্রয়েডে Snackbar ব্যবহার করার পদ্ধতি

  4. Android-এ NavigationView ব্যবহার করে নেভিগেশন ড্রয়ার তৈরির পদ্ধতি