我们使用Google消息在Android设备上接收消息。如果设备处于休眠模式且启用了安全性,是否可以在设备上显示GCM消息。(使用API >2.3.4.0)。
无论是模式识别还是人脸识别,设备都将得到保护。无论设备的状态如何,我们都希望显示GCM消息。理想情况下,我们希望设备保持锁定,但也显示消息,如果不可能,我们可以满足于自动解锁设备,并唤醒显示消息。
有一个应用程序可以在设备上显示来自GCM的消息。因此,我的问题归结为,应用程序是否允许在设备上显示消息,例如,使用模式安全进行锁定。
反馈是非常感谢的。
--我已经尝试过"FLAG_SHOW_WHEN_LOCKED“,因为keygaurdmanager是不推荐的,但是由于某种原因它不能工作。屏幕亮起,但安全模式仍在运行。
发布于 2012-08-01 13:33:04
我想我能理解你想要什么。如果没有,请忽略我的回答。
首先将这些权限添加到您的AndroidManifest.xml
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>在我的应用程序中,我通过一个活动向用户展示了消息,然后在onCreate()中使用了以下代码:
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()中重新启用密钥保护
@Override
protected void onDestroy() {
super.onDestroy();
mKeyguardLock.reenableKeyguard();
}// onDestroy()我只是从一篇博客文章中复制了这些代码(不幸的是,我不记得它在哪里)。它工作正常(使用minSdkVersion = 7,在实际设备2.x上测试,在模拟器<= ICS上测试)。如果可以的话,请试着让我知道它是否有效。
编辑
我不确定,似乎是这个博客帖子。
https://stackoverflow.com/questions/11712188
复制相似问题