Last active 4 hours ago

Implementation of broadcast receivers: implicit, explicit, static, dynamic

Revision 919c03804ff5f50d1feae44e31108b1f01074850

AndroidManifest.xml Raw
1<receiver android:name=".YourBrodcastReceiverClass" android:exported="true">
2 <intent-filter>
3 <action android:name="android.intent.action.BOOT_COMPLETED"/>
4 </intent-filter>
5</receiver>
MyBroadcastReceiver.kt Raw
1public class MyBroadcastReceiver : BroadcastReceiver() {
2 override fun onReceive(context : Context, intent: Intent) {
3
4 }
5}
OwnBroadcast.kt Raw
1var intent = Intent()
2intent.setAction("com.example.broadcast.MY_NOTIFICATION")
3intent.putExtra("data", "Notice me!")
4
5// android:priority attribute or IntentFilter.setPriority()
6
7sendBroadcast(intent)
8
9// restrict broadcasts to the set of apps that hold certain permissions
10sendBroadcast(intent, Manifest.permission.SEND_SMS)
11
12/*
13<receiver android:name=".YourBrodcastReceiverClass" android:exported="true">
14 <intent-filter>
15 <action android:name="com.example.broadcast.MY_NOTIFICATION"/>
16 </intent-filter>
17</receiver>
18*/
RegisterOwn.kt Raw
1class OwnBroadcast : BroadcastReceiver() {
2 override fun onReceive(context: Context, intent: Intent) {
3 val data = intent.getStringExtra("data")
4 Log.d("BroadcastReceiver", "Received: $data")
5 }
6}
7
8// Android 16 priority
9val filter = IntentFilter().apply {
10 priority = 0
11}
12
13// Register the receiver with the filter
14registerReceiver(object : BroadcastReceiver(){
15 override fun onReceive(context: Context?, intent: Intent?) {
16 val data = intent?.getStringExtra("data")
17 Log.d("BroadcastReceiver", "Received: $data")
18 }
19}, filter)
Registration.kt Raw
1BroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
2IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
3filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
4
5// Registration
6this.registerReceiver(myBroadcastReceiver, filter);
7
8// Un-registration
9unregisterReceiver(myBroadcastReceiver);