0

我希望这个问题以前没有被问过,但我找不到任何解决我的问题的方法。我有一个也用于keyguard的小部件。我想为我的小部件添加一个 onClick 处理程序。没有问题,当小部件在主屏幕上时,活动正常启动。但是在 keyguard 上,活动已启动,但未显示,因为设备已锁定。

不想用 和 之类的标志解除WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED键盘保护WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD。我只想显示一个小窗口,要求我解锁设备,就像单击几个键盘保护小部件时打开它一样,例如 android 电子邮件应用程序。

是否有另一个标志来实现这一目标?还是我必须按照自己的意图做某事,被称为打开活动?感谢帮助。

4

1 回答 1

0

为了在 Android 中启用或禁用锁屏,我们需要使用 getSystemService() 获取 keyBoard Manager 的实例。语法如下,

KeyguardManager keyguardManager = 
    (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);  
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);  

对于锁定屏幕使用,

lock.reenableKeyguard();

并禁用锁定使用,

lock.disableKeyguard();  

这只会隐藏锁定屏幕,如果有任何来电或任何此类事件发生,它将显示该屏幕。它不会显示锁定屏幕。

运行应用程序时,要禁用进入锁定状态,只需将 use setKeepScreenOn()设置为 true。或使用 xml 属性android:keepScreenOn="true"

在应用程序运行时防止设备进入睡眠或锁定模式的另一种方法是将此 api 设置为 true - setKeepScreenOn()

当然,我们需要给予许可android.permission.DISABLE_KEYGUARD

于 2015-11-27T10:59:25.167 回答