FLAG_SECURE不适用于AutoCompleteTextView弹出窗口

时间:2016-05-19 19:07:48

标签: android

我正在使用FLAG_SECURE来禁用屏幕投射和scren镜头。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);

当我将我的应用程序屏幕投射到电脑上时,我只能看到黑屏,但如果我选择任何AutoCompleteTextView,我可以看到AutoCompleteTextView弹出窗口。 当我使用FLAG_SECURE /时,它不应该显示此弹出窗口。那么有什么方法可以解决这个问题吗? enter image description here

1 个答案:

答案 0 :(得分:3)

不幸的是,Android框架有时会创建自己的 Window个实例,例如AutoCompleteTextView中的下拉列表。即使你 在FLAG_SECURE上为活动(Android框架)设置Window 不会将该标志传递给代表该创建的任何其他窗口 活动。这不仅会影响AutoCompleteTextView,还会影响Spinner,操作栏溢出菜单以及许多其他内容。

显示自己的窗口的窗口小部件或其他UI元素的作者需要:

  • 检查这些元素所属的活动,看看是否属于该活动 活动正在使用FLAG_SECURE来保护其内容。如果是, UI元素需要应用FLAG_SECURE 它代表该活动打开的任何窗口,例如弹出窗口, 以便整个活动用户界面是安全的。

  • 或者,UI元素需要通过公共公开Window个对象 API,以便{I}可以在需要的地方应用。

我有更多关于问题的范围和一些解决方法, 在my CWAC-Security library

感谢您指出这一点!