Last active 4 hours ago

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

Revision 123c12cd2a4df94dd8bed58f3ab46f6bf64fd46b

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
13class OwnBroadcast : BroadcastReceiver() {
14 override fun onReceive(context: Context, intent: Intent) {
15 val data = intent.getStringExtra("data")
16 Log.d("BroadcastReceiver", "Received: $data")
17 }
18}
19
20// Android 16 priority
21val filter = IntentFilter().apply {
22 priority = 0
23}
24
25// Register the receiver with the filter
26registerReceiver(object : BroadcastReceiver(){
27 override fun onReceive(context: Context?, intent: Intent?) {
28 val data = intent?.getStringExtra("data")
29 Log.d("BroadcastReceiver", "Received: $data")
30 }
31}, filter)
32
33/*
34<receiver android:name=".YourBrodcastReceiverClass" android:exported="true">
35 <intent-filter>
36 <action android:name="com.example.broadcast.MY_NOTIFICATION"/>
37 </intent-filter>
38</receiver>
39*/
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);