技術學習記錄

防止Activity可被截圖的實現方式

最近發現上線的活動被外部使用者鑽漏洞,因此被領走一堆獎品的兌換券。

由於我們目前獎品兌換券核銷的方式是採用店家按下用戶兌換券畫面中的核銷按鈕,來進行核銷

為了防止使用者透過截圖後的假畫面來騙店家,於是APP前端這邊必須加上防止截圖的功能

具體方式參考此篇文章,在Activity中設定他的Window Flag即可。

在這裡我是在onCreate()時設定,如下所示:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // 防止螢幕錄影、截圖
    window.setFlags(
        WindowManager.LayoutParams.FLAG_SECURE,
        WindowManager.LayoutParams.FLAG_SECURE
    )
}

在沒有設定FLAG_SECURE時,可以任意截圖:

現在加上FLAG_SECURE時,截圖畫面一片漆黑,如下所示:

以上則是防止Activity可被截圖的實現方式了。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *