============= Code lớp nhận BroadCast====================
public class DemoBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Đã nhận Broadcast", Toast.LENGTH_SHORT).show();
}
}
============== Code mainifest===============
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="vn.edu.spx.vd_broadcast">
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.VDbroadcast"
tools:targetApi="31">
<receiver android:name=".DemoBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
=================== Nếu muốn gọi activity từ trong broadcast receiver thì bạn thêm code sau vào trong hàm onReceive()
// gọi Activity
Intent i = new Intent(context, MainActivity2222222.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // phải có dòng này mới chạy được, để cho activity chạy ở một task riêng
i.putExtra("dulieu","Dữ liệu trong file Broadcast");
context.startActivity(i);
============= Tự gửi broadcast từ activity thì bạn thêm 1 nút bấm vào activity chính, sau đó viết code cho sự kiện click
// gửi quảng bá nội dung
Intent intentBroadcast = new Intent(getApplicationContext(), DemoBroadcastReceiver.class);
intentBroadcast.setAction("vn.edu.spx.vd_broadcast.DEMO_GUI_BROADCAST_01");
sendBroadcast(intentBroadcast);
// đăng ký vào manifest chỗ intent-filter của thẻ <receiver>
// <action android:name="vn.edu.spx.vd_broadcast.DEMO_GUI_BROADCAST_01"/>