在网络上找了很多资源,发现很多都喜欢用广播来做例子,我这边用最简单的方式来实现
在你要弹出的activity里面的onCreate,如下设置
Window win = getWindow();win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Drawable wallPaper = WallpaperManager.getInstance(this).getDrawable();win.setBackgroundDrawable(wallPaper);
setContentView(R.layout.activity_message);// 这里你自定义xml
1.在任何activity,监听一个点击事件,然后点击是操作如下
Handler mHandler=new Handler();mHandler.postDelayed(new Runnable() { @Override public void run() { KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (km.inKeyguardRestrictedInputMode()) {
// 处于锁屏状态
Intent alarmIntent = new Intent(setting.this, MessageActivity.class); alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(alarmIntent); }else{ ToastUtil.showInfo("没有锁屏~"); } }}, 3000);
// 备注,点击后,app退到后台,然后息屏等待3s
在AndroidManifest.xml加入权限,
<!-- 解锁屏幕需要的权限 --><uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
这种方法可以让你,马上体验到效果,