由于項目的功能需求,需要實現(xiàn)我們的app具有防翻錄和防截屏的功能,由于這方面window和ios方面的實現(xiàn)方法都是檢測當前進程,然后進行一個判斷,還是百度大法好,android只用在我們的基類activity中設置窗口一個參數(shù) .BaseActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
這樣就完了....跑了下果然不能截圖,錄屏完就是黑的.接下來就是重點了,由于我們app主要的需求是視頻阻止別人翻錄,結(jié)果測試的時候發(fā)現(xiàn)在視頻播放的時候這個翻錄是完完全全沒有起作用的.imageview,textview等在防翻錄狀態(tài)下是黑屏的,只有surfaceview在圖層最前面的時候就會被錄下來,.項目當時比較急自己就在最外層的蓋了一層imageview,目的也達到了.
后來得空研究surfaceview和imageview在防翻錄狀態(tài)下的區(qū)別,它們都是繼承的View.為什么會出現(xiàn)這個狀況呢,在查看surfaceView的源碼過程中發(fā)現(xiàn)了它的這個方法
注釋已經(jīng)寫得很清楚了,如果我們要像其他的視圖一樣實現(xiàn)防翻錄的功能,需要在創(chuàng)建視圖之前單獨設置setSecure(true)加到我們的窗口中去,結(jié)果和我們在前面覆蓋imageview得到的結(jié)果是一樣的.