关于android app防翻录防截屏功能的一个小问题

由于项目的功能需求,需要实现我们的app具有防翻录和防截屏的功能,由于这方面window和ios方面的实现方法都是检测当前进程,然后进行一个判断,还是百度大法好,android只用在我们的基类activity中设置窗口一个参数 .BaseActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

这样就完了....跑了下果然不能截图,录屏完就是黑的.接下来就是重点了,由于我们app主要的需求是视频阻止别人翻录,结果测试的时候发现在视频播放的时候这个翻录是完完全全没有起作用的.imageview,textview等在防翻录状态下是黑屏的,只有surfaceview在图层最前面的时候就会被录下来,.项目当时比较急自己就在最外层的盖了一层imageview,目的也达到了.
后来得空研究surfaceview和imageview在防翻录状态下的区别,它们都是继承的View.为什么会出现这个状况呢,在查看surfaceView的源码过程中发现了它的这个方法

image.png

注释已经写得很清楚了,如果我们要像其他的视图一样实现防翻录的功能,需要在创建视图之前单独设置setSecure(true)加到我们的窗口中去,结果和我们在前面覆盖imageview得到的结果是一样的.

你可能感兴趣的:(关于android app防翻录防截屏功能的一个小问题)