Android 实现程序开机自启

96
世外大帝
2019.05.07 17:25 字数 252

最近要做个无界面的开发板程序,需要长期稳定运行,并开机自启,之前没做过,周工给了个提示 android.intent.action.BOOT_COMPLETED ,然后查了一些资料,遂有此文。

  1. AndroidManifest.xml 文件下添加权限

    <!-- 程序自启动权限 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    
  1. 在 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>
    
  1. 编写广播接收者,拦截 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);
            }
        }
    }
    
  2. 在设置中,允许程序自启动(或各种拦截软件中), 否则将被拦截

  3. 重启试试?

实现代码来自 https://www.cnblogs.com/jetereting/p/4572302.html

Android手记
Gupao