Last active 4 hours ago

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

Revision 8b3cb2e1e4359f8740893a9de0f3e39401cb399c

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>
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
1public class MyBroadcastReceiver : BroadcastReceiver() {
2 override fun onReceive(context : Context, intent: Intent) {
3
4 }
5}
6
7BroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
8IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
9filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
10
11// Registration
12this.registerReceiver(myBroadcastReceiver, filter);
13
14// Un-registration
15unregisterReceiver(myBroadcastReceiver);