android - 如何在最近的应用程序中使屏幕空白但允许屏幕截图

标签 android security layout screenshot android-recents

我想在最近的应用程序屏幕中将 View 设为纯白色或黑色,但又不想完全隐藏它。而且我还想在不影响用户体验的情况下启用屏幕截图功能。

我在启用指纹锁时在 whatsapp 中看到了相同的实现(测试版 apk)。这里有人知道这是如何实现的吗?

请不要将其标记为重复,因为以下主题没有回答我的问题

Hide screen in 'Recent Apps List', but allow screenshots ,

Question 2 ,

Android: Customizing recent apps thumbnail (screenshot by default)

最佳答案

经过大量调查,我得出了以下结论

Android 7.0 或更早版本(<= SDK 25):

目前这是不可能实现的,在系统实际截取布局之前没有直接的回调。

Android 8.0 及更高版本(>= SDK 26):

无论如何,在 onPause() 中向窗口添加安全布局标志并在 onResume() 中清除它会完全按预期工作。

为了使其对所有 Activity 通用,在 Application 类中注册一个 Application.ActivityLifecycleCallbacks 并在特定的重写函数中添加以下行。

fun onActivityResumed(activity: Activity) {
    activity?.window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}

fun onActivityPaused(activity: Activity) {
    activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
}

关于android - 如何在最近的应用程序中使屏幕空白但允许屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58284352/

相关文章:

android - 在 Android 应用程序中嵌入 Apache SSHD 服务器

java - 这个 AES 128 加密有什么问题?

android - 在android中的xml中画圆

java - 无法从布局中删除 View

android - 如何显示图片?

java - 修复 Android 中的跳帧

android - 网站背景在 Android 上显示不正确。 Chrome DevTools 没有反射(reflect)这一点

ios - 存储 paypal api 凭据的最佳和安全方式

security - 使 'plaintext' 字符串免受破解?

html - 对齐背景图像