Android 13 非 Launcher 应用开机启动:通过监听开机广播实现
在 Android 系统中,非 Launcher 应用无法直接作为默认启动器运行,尤其是在 Android 13 中,即使通过修改 AOSP 源码为应用添加 Launcher
属性,也可能无法实现开机启动。针对这种情况,如果项目时间紧迫,可以通过监听开机广播的方式,在设备启动完成后自动启动指定应用。
本文将详细介绍如何通过修改 AOSP 源码,在 PhoneWindowManager
类中监听开机广播并启动指定的非 Launcher 应用。
背景
Android 系统中的 BOOT_COMPLETED
广播表示设备启动完成。通过监听该广播,我们可以在设备启动后执行特定的操作,例如启动某个应用。对于没有源码的非 Launcher 应用,这种方法可以快速实现开机启动功能,而无需复杂地修改应用清单文件或适配其他系统逻辑。
解决方案
我们选择修改 AOSP 源码中的 PhoneWindowManager
类,该类负责处理系统窗口管理和关键事件(如广播接收)。通过在该类中添加对 BOOT_COMP