首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-当设备处于睡眠模式并启用安全功能时,可以显示警报吗?

-当设备处于睡眠模式并启用安全功能时,可以显示警报吗?
EN

Stack Overflow用户
提问于 2012-07-29 19:19:32
回答 1查看 1.8K关注 0票数 2

我们使用Google消息在Android设备上接收消息。如果设备处于休眠模式且启用了安全性,是否可以在设备上显示GCM消息。(使用API >2.3.4.0)。

无论是模式识别还是人脸识别,设备都将得到保护。无论设备的状态如何,我们都希望显示GCM消息。理想情况下,我们希望设备保持锁定,但也显示消息,如果不可能,我们可以满足于自动解锁设备,并唤醒显示消息。

有一个应用程序可以在设备上显示来自GCM的消息。因此,我的问题归结为,应用程序是否允许在设备上显示消息,例如,使用模式安全进行锁定。

反馈是非常感谢的。

--我已经尝试过"FLAG_SHOW_WHEN_LOCKED“,因为keygaurdmanager是不推荐的,但是由于某种原因它不能工作。屏幕亮起,但安全模式仍在运行。

EN

回答 1

Stack Overflow用户

发布于 2012-08-01 13:33:04

我想我能理解你想要什么。如果没有,请忽略我的回答。

首先将这些权限添加到您的AndroidManifest.xml

代码语言:javascript
复制
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

在我的应用程序中,我通过一个活动向用户展示了消息,然后在onCreate()中使用了以下代码:

代码语言:javascript
复制
import android.app.KeyguardManager;
import android.os.PowerManager;
import android.view.WindowManager;

// ...

private KeyguardManager.KeyguardLock mKeyguardLock;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // ...

    KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
    mKeyguardLock = km.newKeyguardLock(ClassName);
    mKeyguardLock.disableKeyguard();

    PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(
            PowerManager.ACQUIRE_CAUSES_WAKEUP
                    | PowerManager.FULL_WAKE_LOCK, ClassName);
    wl.acquire();

    getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}// onCreate()

确保在onDestroy()中重新启用密钥保护

代码语言:javascript
复制
@Override
protected void onDestroy() {
    super.onDestroy();
    mKeyguardLock.reenableKeyguard();
}// onDestroy()

我只是从一篇博客文章中复制了这些代码(不幸的是,我不记得它在哪里)。它工作正常(使用minSdkVersion = 7,在实际设备2.x上测试,在模拟器<= ICS上测试)。如果可以的话,请试着让我知道它是否有效。

编辑

我不确定,似乎是这个博客帖子

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11712188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档