防止 Android 應用內截圖
很多時候,用戶需要在我們的應用中輸入類似於身份證號、密碼、銀行卡號等敏感信息,此時如果在後臺不懷好意的應用程序對這些敏感頁面進行截圖,將導致用戶的個人信息泄露。 Android 爲我們提供了一種可以防止 Activity 被截圖的方案來保護用戶的隱私。
在 setContentView 前向窗口添加一個 FLAG_SECURE 的 FLAG 。
0x00 代碼#
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
setContentView(R.layout.main);
}
}0x01 實機測試#





0x02 結語#
Android 使用 FLAG_SECURE 限制了 SurfaceFlinger 的功能,也用它將圖形緩存區標記爲不可截圖,從而一定程度上的保證了屏幕區域的安全,正常開發的情況下推薦使用。
當然,如果你的用戶安裝了 Xposed 框架,別費盡心思了。Forget it~ :D