我一直在开发具有锁定屏幕功能的Android应用程序,这样一旦我的LockScreen活动启动,默认锁定屏幕应暂时禁用,直到活动存在。
在搜索时,我发现使用FLAG_SHOW_WHEN_LOCKED很容易。但是当我添加TYPE_KEYGUARD_DIALOG以禁用HOME按钮时,它就停止了工作。
再次搜索我最终找到了使用代码的解决方案
KeyguardManager.KeyguardLock k1;
KeyguardManager km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
k1 = km.newKeyguardLock("IN");
k1.disableKeyguard();
但不推荐使用KeyguardManager.KeyguardLock类型。
有没有办法在不使用KeyguardLock的情况下完成这项工作?
我的代码 -
public void onAttachedToWindow() {
// TODO Auto-generated method stub
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG | WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onAttachedToWindow();
}
答案 0 :(得分:0)
发现我的问题不再适用了。无法为Jellybean +手机创建锁屏。所以现在放弃了这个功能。
原因,
答案 1 :(得分:0)
如果您仍然需要回答,请尝试使用FLAG_DISMISS_KEYGUARD
KeyguardLock
,如果它不起作用,您只需要保留KeyguardLock
并在{@SuppressWarnings("deprecation")
之前添加@Override
1}}。
此外,您并不总是需要onAttachedToWindow()
使用this.getWindow().addFlags(WindowManager.LayoutParams.*here flag that you need*)
,而您必须在setContentView()
之前执行此操作。