<!--开机自启权限-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name=".receiver.BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
public class BootBroadcastReceiver extends BroadcastReceiver {
private String action = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent startIntent = new Intent(context, StartActivity.class);
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startIntent);
}
}
}
如果失败,那么请检查你的手机是不是设置了app安装首选位置是sd卡,据说安装到sd卡的话,因为手机启动成功后(发送了启动完成的广播后)才加载sd卡,所以app接收不到广播。如果是的话,把app安装到内部存储试试。
如果不懂得设置的话,那么直接在AndroidManifest.xml文件中设置安装路径,android:installLocation=“internalOnly”。
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="internalOnly">
本文详述了如何在Android应用中实现开机自启动功能,包括必要的权限配置、使用BroadcastReceiver监听系统启动完成事件,以及解决因安装位置导致的问题。通过修改AndroidManifest.xml文件中的installLocation属性,确保应用安装在内部存储,从而避免因SD卡加载延迟而错过开机自启广播。
1735

被折叠的 条评论
为什么被折叠?



