Android 实现程序开机自启
2019-05-07 本文已影响1人
世外大帝
最近要做个无界面的开发板程序,需要长期稳定运行,并开机自启,之前没做过,周工给了个提示 android.intent.action.BOOT_COMPLETED
,然后查了一些资料,遂有此文。
-
AndroidManifest.xml
文件下添加权限<!-- 程序自启动权限 --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
-
在 application 下继续添加静态广播进行拦截, 并设置高优先级
<!-- 程序自启动广播 --> <receiver android:name=".MyReceiver" android:enabled="true" android:exported="true"> <intent-filter android:priority="1000"> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
-
编写广播接收者,拦截
android.intent.action.BOOT_COMPLETED
,需要注意的是目标 Class<?> cls ,并不是程序正常启动的Activity。public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { Intent i = new Intent(context, ConnectionActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } }
-
在设置中,允许程序自启动(或各种拦截软件中), 否则将被拦截
-
重启试试?