最近做了个开机跳过锁屏界面直接启动应用的程序,做下总结
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命令
效果如下: