Flutter应用如何实现开机自启?使用autostart等包无效怎么解决
Flutter应用实现开机自动启动解决方案
你目前使用的autostart、android_autostart第三方包仅提供跳转系统自启设置页的能力,本身不会自动配置安卓端所需的广播监听和权限,仅调用跳转接口自然无法实现自启效果,可按照以下步骤完成完整配置:
1. 配置安卓端基础权限与广播接收器
打开项目安卓目录下的android/app/src/main/AndroidManifest.xml文件,依次添加如下配置:
- 在
manifest根标签下添加开机广播接收权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- 在
application标签内部添加开机广播接收器配置:
<receiver android:name="io.flutter.plugins.androidautostart.BootReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
2. 引导用户开启厂商定制系统权限
目前绝大多数国产安卓定制系统(小米、华为、OPPO、vivo等)默认禁止第三方应用自启,完成上述基础配置后还需引导用户手动开启权限:
- 你代码中的按钮触发后会跳转到对应厂商的自启设置页,需引导用户在设置列表中找到你的应用,手动打开允许自启动开关
- 部分系统还需同步打开后台活动允许、省电策略设置为无限制,避免应用进程被系统查杀后无法正常拉起
3. 验证功能生效
- 完成配置后先卸载设备上已安装的旧版应用,重新编译安装,必须手动启动一次应用,安卓系统才会给未主动启动过的应用分发开机广播
- 跳转设置页开启所有所需权限后,重启设备,等待1-2分钟即可看到应用自动启动
内容的提问来源于stack exchange,提问作者Ananda Pramono
相关产品推荐
相关产品推荐

