最近做了個開機跳過鎖屏界面直接啓動應用的程序,做下總結
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命令
效果如下: