对于我的应用程序,我需要知道屏幕已被锁定.如何检查这是有问题的.我使用了以下标志:
if(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON != 0){
// some code
}else if((WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)!= 0){
// some code
}
Run Code Online (Sandbox Code Playgroud)
但这总是执行if和else部分...我必须使用哪个标志来检查屏幕是否被锁定?
Mac*_*ato 22
我会尝试回答这个问题,虽然这个问题已经很久了,因为它尚未解决,可以帮助其他googlers.;)
首先,您必须为Intent.ACTION_SCREEN_OFF和Intent.ACTION_SCREEN_ON注册BroadcastReceiver.请注意,此接收器必须在代码中注册,并且在清单中声明时不起作用.
在您的广播接收器中,当您收到Intent.ACTION_SCREEN_ON时,您可以使用以下代码检查屏幕是否被锁定:
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean locked = km.inKeyguardRestrictedInputMode();
Run Code Online (Sandbox Code Playgroud)
使用操作注册广播接收器android.intent.action.ACTION_SCREEN_OFF
并在接收器的 onReceive() 方法中编写代码。
如果您正在使用 Activity,则屏幕锁定时将调用 onPause(),屏幕解锁时将调用 onResume()。
在您的代码中,您正在检查一些标志,我不知道您将在哪里进行检查?是持续验证吗?如果您在应用程序中使用 Activity,则会发生上述过程,只需在 Android 开发者网站中查看即可。
归档时间: |
|
查看次数: |
25256 次 |
最近记录: |