android之开机跳过锁屏界面自启动应用

最近做了个开机跳过锁屏界面直接启动应用的程序,做下总结

1、首先开机自启动,不用多说,只需要写个broadcastreceiver接收开启启动完成的广播即可Intent.ACTION_BOOT_COMPLETED


public class BootCompletedReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if((Intent.ACTION_BOOT_COMPLETED).equals(action)){
            Intent intent1 = new Intent(context,MainActivity.class);
            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent1);
        }
    }
2、在menifest中注册,并且添加接收开机完成广播的权限

<receiver android:name=".BootCompletedReceiver">
    <intent-filter android:priority="1000">
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3、在要启动的activity上加上两行代码,那么这个自启动activity就可以跳过锁屏界面直接显示到界面

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int flags = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
    getWindow().addFlags(flags);
    setContentView(R.layout.activity_main);

使用注意的是跳过锁屏界面的只是这一个activity界面,其他的不会,若要其他的activity也跳过锁屏界面(即在这个activity启动另一个activity),那么另一个activity也需要加上上面那两行代码,不然就会先返回锁屏界面,锁屏界面进去了之后才是那个activity


模拟器关机技巧:使用adb shell am broadcast -a android.intent.action.BOOT_COMPLETED命令


效果如下:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章