在 Android 中发送系统广播81

简介

广播是 Android 通信机制中不可或缺的一部分。当系统或应用程序发生特定事件时,可以通过发送广播来通知其他应用程序。系统广播是预定义的广播,由 Android 系统发送,用于通知系统范围内的事件,例如电池电量变化、应用程序安装或卸载、连接更改等。

发送系统广播

发送系统广播需要获得.BROADCAST_SYSTEM权限。可以使用sendBroadcast(Intent, String)方法发送广播,参数为广播意图和权限。广播意图指定广播的类型,而权限指定发送广播所需的权限。

public void sendBroadcast(Intent intent, String permission) { (intent, permission);}

系统广播的意图通常以开头,例如:

* .BATTERY_CHANGED:用于通知电池状态变化* .PACKAGE_ADDED:用于通知应用程序安装* .CONNECTIVITY_CHANGE:用于通知网络连接状态变化

接收系统广播

要接收系统广播,需要注册一个广播接收器。广播接收器是一个类,实现接口。在onReceive()方法中处理接收到的广播。

public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 处理广播 }}

要注册广播接收器,可以使用registerReceiver(BroadcastReceiver, IntentFilter)方法。过滤器指定接收器应接收的广播类型。

public void registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { (receiver, filter);}

过滤器可以有多个操作、数据类型和数据 URI 匹配,以指定接收器应接收的广播类型。例如,以下过滤器将接收所有.BATTERY_CHANGED广播:

IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);

系统广播类型

Android 系统提供许多系统广播,涵盖各种系统事件。以下是其中一些最常见的广播:

* .BATTERY_CHANGED:通知电池状态变化* .PACKAGE_ADDED:通知应用程序安装* .PACKAGE_REMOVED:通知应用程序卸载* .CONNECTIVITY_CHANGE:通知网络连接状态变化* .BOOT_COMPLETED:通知系统启动完成* .USER_PRESENT:通知用户解锁设备* .SCREEN_ON:通知屏幕已打开* .SCREEN_OFF:通知屏幕已关闭* .TIME_TICK:通知以每分钟一次的间隔生成时钟滴答声* .DATE_CHANGED:通知日期已更改* .TIMEZONE_CHANGED:通知时区已更改

注意事项

* 仅在必要时发送系统广播,因为它们可能会影响系统性能。* 确保广播接收器是轻量级的,并且快速处理广播。* 在清单文件中声明广播接收器的权限和意图过滤器。* 使用sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle)方法发送有序广播,以控制广播的接收顺序。* 使用abortBroadcast()方法中止广播,以防止其他接收器接收该广播。

2024-10-16


上一篇:Linux 系统全方位指南:中文篇

下一篇:Windows 系统激活:全面指南