我已经使用GCM实现了推送通知,当我收到通知时,我希望在我创建了自定义对话框的对话框中显示.
现在,我希望我的对话框出现,即使设备被锁定,无论是模式匹配还是PIN.
我做了以下尝试,但没有积极的结果.
public void onAttachedToWindow() {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
Run Code Online (Sandbox Code Playgroud)
并且
public void onAttachedToWindow() {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+ WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
}
Run Code Online (Sandbox Code Playgroud)
清单中的权限:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
Run Code Online (Sandbox Code Playgroud)
并且还添加了
android:showOnLockScreen="true"
Run Code Online (Sandbox Code Playgroud)
对于屏幕锁定时我想要显示的活动.
请帮忙.
您应该使用KeyGuardManager自动解锁设备,然后获取唤醒锁。
KeyguardManager kgm = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
boolean isKeyguardUp = kgm.inKeyguardRestrictedInputMode();
KeyguardLock kgl = kgm.newKeyguardLock("Your Activity/Service name");
if(isKeyguardUp){
kgl.disableKeyguard();
isKeyguardUp = false;
}
wl.acquire(); //use your wake lock once keyguard is down.
Run Code Online (Sandbox Code Playgroud)
您应该将此权限添加到清单中
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Run Code Online (Sandbox Code Playgroud)
和这个
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5264 次 |
| 最近记录: |