如何在最近的应用程序中使屏幕空白但允许屏幕截图
How to make screen blank in recent apps but allow screenshots
我想在最近的应用程序屏幕中将视图设为纯白色或黑色,但不想完全隐藏它。而且我想在不影响用户体验的情况下开启截图功能
我在启用指纹锁时在 whatsapp 中看到了相同的实现(测试版 apk)。这里有人知道这是如何实施的吗?
请不要将其标记为重复,因为以下讨论帖没有回答我的问题
,
,
Android: Customizing recent apps thumbnail (screenshot by default)
经过大量调查,我得出以下结论
Android 7.0 或更早版本(<= SDK 25):
目前无法实现,在系统实际截取布局之前没有直接回调。
Android 8.0 及更新版本(>= SDK 26):
无论如何,将安全布局标志添加到 onPause()
中的 window 并在 onResume()
中将其清除将完全按预期工作。
为了使其对所有活动通用,在 Application
class 中注册一个 Application.ActivityLifecycleCallbacks
并在特定的覆盖函数中添加以下行。
fun onActivityResumed(activity: Activity) {
activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
fun onActivityPaused(activity: Activity) {
activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
我想在最近的应用程序屏幕中将视图设为纯白色或黑色,但不想完全隐藏它。而且我想在不影响用户体验的情况下开启截图功能
我在启用指纹锁时在 whatsapp 中看到了相同的实现(测试版 apk)。这里有人知道这是如何实施的吗?
请不要将其标记为重复,因为以下讨论帖没有回答我的问题
Android: Customizing recent apps thumbnail (screenshot by default)
经过大量调查,我得出以下结论
Android 7.0 或更早版本(<= SDK 25):
目前无法实现,在系统实际截取布局之前没有直接回调。
Android 8.0 及更新版本(>= SDK 26):
无论如何,将安全布局标志添加到 onPause()
中的 window 并在 onResume()
中将其清除将完全按预期工作。
为了使其对所有活动通用,在 Application
class 中注册一个 Application.ActivityLifecycleCallbacks
并在特定的覆盖函数中添加以下行。
fun onActivityResumed(activity: Activity) {
activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
fun onActivityPaused(activity: Activity) {
activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
}