Broadcast Receiver Android

Pandiyan Mani
2 min readAug 23, 2023

what is Broadcast Receiver?

Broadcast Receivers are used to respond to these system-wide events. Broadcast Receivers allow us to register for the system and application events, and when that event happens, then the register receivers get notified

Below is the sample project showing how to create the broadcast Receiver and how to register them for a particular event and how to use them in the application.

Now lets create a layout activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</androidx.constraintlayout.widget.ConstraintLayout>

Go to the MainActivity.kt file and refer to the following code

import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

// register the receiver in the main activity in order
// to receive updates of broadcasts events if they occur
lateinit var receiver: AirplaneModeChangeReceiver
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

receiver = AirplaneModeChangeReceiver()

// Intent Filter is useful to determine which apps wants to receive
// which intents,since here we want to respond to change of
// airplane mode
IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED).also {
// registering the receiver
// it parameter which is passed in registerReceiver() function
// is the intent filter that we have just created
registerReceiver(receiver, it)
}
}

// since AirplaneModeChangeReceiver class holds a instance of Context
// and that context is actually the activity context in which
// the receiver has been created
override fun onStop() {
super.onStop()
unregisterReceiver(receiver)
}
}

Below is the code for the AirplaneModeChangeReceiver file

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.widget.Toast

// AirplaneModeChangeReceiver class extending BroadcastReceiver class
class AirplaneModeChangeReceiver : BroadcastReceiver() {

// this function will be executed when the user changes his
// airplane mode
override fun onReceive(context: Context?, intent: Intent?) {

// intent contains the information about the broadcast
// in our case broadcast is change of airplane mode

// if getBooleanExtra contains null value,it will directly return back
val isAirplaneModeEnabled = intent?.getBooleanExtra("state", false) ?: return

// checking whether airplane mode is enabled or not
if (isAirplaneModeEnabled) {
// showing the toast message if airplane mode is enabled
Toast.makeText(context, "Airplane Mode Enabled", Toast.LENGTH_LONG).show()
} else {
// showing the toast message if airplane mode is disabled
Toast.makeText(context, "Airplane Mode Disabled", Toast.LENGTH_LONG).show()
}
}
}

OutPut:

--

--