2013-12-16 159 views
0

使用lockNow()功能,显示器关闭然后锁定,但如何锁定显示器保持打开状态? 我想知道是否存在一种方法来调用锁定屏幕而不关闭显示器,以便用户可以(最终)解锁它而无需按下电源按钮。锁定屏幕不关闭

回答

0

你可以尝试把屏幕上的lockNow()通话用类似的东西后:

PowerManager powerManager = ((PowerManager) getSystemService(Context.POWER_SERVICE)); 
WakeLock screenLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); 
screenLock.acquire(); 
screenLock.release(); 

您将需要添加所需的烫发发送到清单文件:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
+0

好的Addrallyn我已经达到了相同的结论,但通过循环立即结束的活动(FLAG_SHOW_WHEN_LOCKED,FLAG_TURN_SCREEN_ON)。即使反过来,你的解决方案比我的更优雅。除非有解决方案不涉及ACTION_SCREEN_OFF广播接收器,否则我会接受您的答案。 – lorenzoff

+0

似乎没有一种功能可以在不关闭屏幕的情况下先关闭屏幕。 – lorenzoff

0

还有另一种锁定屏幕的方法。试试那个。它的工作方式可能不同,而不是屏幕的旋转(我不能确切地说,你可以检查它)。您可以尝试使用KeyguardManager,而不是使用lockNow()。您可以通过更改keyguard属性来操纵lockscreen

添加必需的权限清单文件:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 

那么你可以尝试这样的事:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock l = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
l.reenableKeyguard(); 
+0

不幸的是reenableKeyguard()似乎没有效果,至少在我的开发设备上。设备的显示屏未关闭,但仍处于解锁状态。 – lorenzoff