- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在我们的 Activity 中使用 FLAG_SECURE 来禁用屏幕转换和屏幕截图。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
当我将我的应用程序屏幕转换到电脑时,我只能看到黑屏,但如果我选择任何 AutoCompleteTextView,我可以看到 AutoCompleteTextView 弹出窗口。当我使用 FLAG_SECURE/时,它不应该显示这个弹出窗口。那么有没有办法解决这个问题呢?
最佳答案
不幸的是,Android 框架有时会创建自己的Window
实例,例如 AutoCompleteTextView
中的下拉列表。即使你在 Window
上为一个 Activity 设置 FLAG_SECURE
,Android 框架不会将该标志传递给代表该标志创建的任何其他窗口 Activity 。这不仅会影响 AutoCompleteTextView
,还会影响 Spinner
、操作栏溢出菜单和许多其他内容。
显示自己的窗口的小部件或其他 UI 元素的作者需要:
检查这些元素所属的 Activity ,看看是否 Activity 正在使用 FLAG_SECURE
来保护其内容。如果是,UI 元素需要应用 FLAG_SECURE
它代表该 Activity 打开的任何窗口,例如弹出窗口,这样整个 Activity UI 都是安全的。
或者,UI 元素需要通过公共(public)对象公开 Window
对象API,以便可以在需要的地方应用 FLAG_SECURE
。
我有更多关于问题范围的信息,以及一些解决方法,在 my CWAC-Security library .
感谢您指出这一点!
关于android - FLAG_SECURE 不适用于 AutoCompleteTextView 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37332077/
我正在开发一款应用,该应用的某些屏幕不允许截屏。 我已经能够通过代码成功地做到这一点。 我一直在尝试找到一种通过 xml 为我的 Activity 指定 LayoutParams.FLAG_SECUR
我有一个请求,当我的 Android 应用程序置于后台时,我会清空屏幕以隐藏敏感数据。使用以下方法很容易实现: getWindow().addFlags(WindowManager.LayoutPar
使用 FLAG_SECURE 时,不允许截屏。我希望我的应用程序能够捕获屏幕,但在进入后台时变得模糊或隐藏。 你知道有什么方法可以做到这一点吗?是否可以使用 FLAG_SECURE 来实现? 我阅读了
我如何查询 Android 应用程序的当前窗口/Activity 以检查 window flag安全标志?是否可以针对 APK 使用 ADB 或任何其他命令行工具? 我的用例是:我想查询设备以查看当前
我在我们的 Activity 中使用 FLAG_SECURE 来禁用屏幕转换和屏幕截图。 getWindow().setFlags(WindowManager.LayoutParams.FLAG_SE
我正在使用 WindowManager.LayoutParams.FLAG_SECURE 禁用屏幕截图。现在是否可以在不重新加载 Activity 的情况下立即更改 WindowManager.Lay
我的应用中有一些用户敏感信息,我想通过标准系统快捷方式或 Google 智能助理禁用其中的屏幕截图。我使用的 WindowManager 的 FLAG_SECURE 不会在某些设备上通过 Google
我有一个在 libGDX 的帮助下创建的 Android 游戏。我想禁用截屏功能。 对于常规的 android Activity ,您可以使用 getWindow().setFlags(LayoutP
我有一个 Flutter 项目,我需要在 Android 上添加一个 FLAG_SECURE。 目前,这是我主要 Activity 的代码: import android.os.Bundle impo
当我设置对话框 fragment 的样式时,android 允许截取对话框 fragment 的屏幕截图,但在删除样式后它会起作用。 下面是对话框 fragment 的onCreate代码 @Over
我们有一个使用 ExoPlayer2 的视频播放器应用程序。并且需要保护它免受屏幕录像机的影响。 我们在 ExoPlayer2 Activity 屏幕中集成了 'WindowManager.Layou
我在我的 android 应用程序中使用了以下代码,以防止用户截取屏幕截图或屏幕录制: if(android.os.Build.VERSION.SDK_INT >= android.os.Build.
在 Android 12 上,如果我使用 WindowManager.LayoutParams.FLAG_SECURE 创建一个简单的应用 class MainActivity : AppCompat
我是一名优秀的程序员,十分优秀!