我想在最近的应用程序屏幕中将 View 设为纯白色或黑色,但又不想完全隐藏它。而且我还想在不影响用户体验的情况下启用屏幕截图功能。
我在启用指纹锁时在 whatsapp 中看到了相同的实现(测试版 apk)。这里有人知道这是如何实现的吗?
请不要将其标记为重复,因为以下主题没有回答我的问题
Hide screen in 'Recent Apps List', but allow screenshots ,
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/