有一个名为Medical Id的紧急应用程序。它有一个奇妙的功能,它在锁定的屏幕上显示通知。用户只需双击通知即可打开活动。对于其他应用程序通知,如果用户点击,则会提示首先解锁。我正在寻找相同的功能,但无法实现相同的功能。我试过在附加的窗口添加标志。
@Override
public void onAttachedToWindow()
{
super.onAttachedToWindow();
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 &
WindowManager.LayoutParams.FLAG_FULLSCREEN
);
}
还向清单中的活动添加了显示锁定屏幕,但它会在打开活动之前提示解锁屏幕。为了清晰起见,请查看医疗ID。我不知道他们用什么来绕过解锁。通知的电话设置在我的手机中是公开的。令人惊讶的是,即使您的手机通知设置是私密的,即使没有其他通知,也会出现医疗ID通知。任何线索都有帮助。
答案 0 :(得分:0)
你应该使用管道|而不是&符号&
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);
此功能仅适用于Android 4.4
答案 1 :(得分:0)
如果要在锁定屏幕上单击通知时显示“活动”,则可以在“活动”生命周期的OnCreate中执行此操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setTurnScreenOn(true);
setShowWhenLocked(true);
} else {
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
}
}