我正在使用FLAG_SECURE来禁用屏幕投射和scren镜头。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
当我将我的应用程序屏幕投射到电脑上时,我只能看到黑屏,但如果我选择任何AutoCompleteTextView,我可以看到AutoCompleteTextView弹出窗口。 当我使用FLAG_SECURE /时,它不应该显示此弹出窗口。那么有什么方法可以解决这个问题吗?
答案 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。
感谢您指出这一点!