Rudxain (talk | contribs)
m comment on Source-Available and OSS; fmt, links, rewording, etc...
JodyBruchonFan (talk | contribs)
On Android: Better wording.
 
(2 intermediate revisions by 2 users not shown)
Line 3: Line 3:


==How it works==
==How it works==
Blocking screenshots is typically an in-app technology, not something that automatically applies across all apps or devices. Here's how it works, depending on the platform:
Blocking screenshots is typically a restriction set by individual apps, not something that automatically applies across all apps or devices. Here's how it works, depending on the platform:


On Android, apps can block screenshots using a flag called: <code>WindowManager.LayoutParams.FLAG_SECURE</code>. When this flag is set on an activity, it prevents the content from being captured in screenshots, screen recordings, and even in the app switcher (recent apps view). This is often used by apps like, banking apps, media streaming services (e.g. Netflix), and secure messaging apps.<ref>[https://developer.android.com/reference/android/view/WindowManager.LayoutParams WindowManager.LayoutParams &#x7C; API reference &#x7C; Android Developers] ([https://web.archive.org/web/20260401090300/https://developer.android.com/reference/android/view/WindowManager.LayoutParams Archived])</ref><ref name="netflix-vdocipher" />
=== On Android ===
On [[Android]], apps can block screenshots using a flag called: <code>WindowManager.LayoutParams.FLAG_SECURE</code>. When this flag is set on an activity, it prevents the content from being captured in screenshots, screen recordings, and even in the app switcher (recent apps view). This is often used by apps like, banking apps, media streaming services (e.g. Netflix), and secure messaging apps.<ref>[https://developer.android.com/reference/android/view/WindowManager.LayoutParams WindowManager.LayoutParams &#x7C; API reference &#x7C; Android Developers] ([https://web.archive.org/web/20260401090300/https://developer.android.com/reference/android/view/WindowManager.LayoutParams Archived])</ref><ref name="netflix-vdocipher" />


On iOS, iOS does not give developers an official flag like <code>FLAG_SECURE</code>, but they use workarounds, like displaying sensitive content in a <code>UIView</code> with custom rendering, then hiding or blurring it when the app detects screenshot events or apps going into background or app switcher{{Citation needed}}.
 
On the Android developer website, Google encourages app makers to add an option to temporarily allow screenshots:
 
<blockquote>
Note: To provide transparency and user control, consider adding a setting in your app that allows users to toggle this flag.
</blockquote>
<ref>{{cite web |url=https://developer.android.com/about/versions/14/features/screenshot-detection |title=Detect when users take device screenshots |website=Android Developers |access-date=2026-04-26 }}</ref>
 
At the same time, Google failed to provide a built-in option in Android that would let device owners have the final choice to override this restriction without having to rely on permission from the app.
 
=== On iOS ===
On [[iOS]], iOS does not give developers an official flag like <code>FLAG_SECURE</code>, but they use workarounds, like displaying sensitive content in a <code>UIView</code> with custom rendering, then hiding or blurring it when the app detects screenshot events or apps going into background or app switcher{{Citation needed}}.


On desktop systems, blocking screenshots is more difficult because users typically have full control over the operating system, and there is no built-in API to prevent screenshots. Third-party tools or system-level protections are needed. Although, enterprise apps may block screenshots using [[digital rights management]] (DRM), [[wikipedia:Desktop_virtualization|virtual desktop infrastructure]] (VDI), or overlay detection / screen capture prevention libraries{{Citation needed}}.
On desktop systems, blocking screenshots is more difficult because users typically have full control over the operating system, and there is no built-in API to prevent screenshots. Third-party tools or system-level protections are needed. Although, enterprise apps may block screenshots using [[digital rights management]] (DRM), [[wikipedia:Desktop_virtualization|virtual desktop infrastructure]] (VDI), or overlay detection / screen capture prevention libraries{{Citation needed}}.
Line 37: Line 49:
===Overuse===
===Overuse===
Some apps implement screenshot blocking in situations where it is unnecessary. For example, since 2018, [[Google Chrome|Chrome]] has blocked screenshots while in Incognito mode. It is unclear what this restriction is meant to protect against, given that Incognito browsing already functions by not saving history or [[Web cookie|cookies]].
Some apps implement screenshot blocking in situations where it is unnecessary. For example, since 2018, [[Google Chrome|Chrome]] has blocked screenshots while in Incognito mode. It is unclear what this restriction is meant to protect against, given that Incognito browsing already functions by not saving history or [[Web cookie|cookies]].
There are legitimate reasons to take a screenshot in Incognito mode. Developers may need to capture how a website looks to first-time visitors, or users might want to save information temporarily without adding it to their browsing history. In these cases, blocking screenshots serves no meaningful security purpose and only prevents the device owner from using their phone’s features as intended.
There are legitimate reasons to take a screenshot in Incognito mode. Developers may need to capture how a website looks to first-time visitors, or users might want to save information temporarily without adding it to their browsing history. In these cases, blocking screenshots serves no meaningful security purpose and only prevents the device owner from using their phone’s features as intended.


===Ineffective===
===Ineffective===
Screens can be photographed from an external device. The quality of the image is likely to be lower, but it generally does not prevent someone from being able to reach alphanumerical information such as banking details and text-based messages.<!-- (Recently moved from: "It's a local file) Not sure this is a convincing argument. Just because someone can do something through one means, it doesn't follow that another means should be allowed. There is a counterargument to be made that making something more difficult acts as a deterrent, meaning fewer people would do it and it is therefore successful on that level.  -->
Screens can be photographed from an external device. The quality of the image is likely to be lower, but it generally does not prevent someone from being able to reach alphanumerical information such as banking details and text-based messages.<!-- (Recently moved from: "It's a local file) Not sure this is a convincing argument. Just because someone can do something through one means, it doesn't follow that another means should be allowed. There is a counterargument to be made that making something more difficult acts as a deterrent, meaning fewer people would do it and it is therefore successful on that level.  -->
===Prevention of bug reports===
Screenshot blocking and screen recorder blocking might discourage users from reporting bugs by making it more difficult to document the bugs.


==Incidents==
==Incidents==
Line 77: Line 93:
==Screenshot detection==
==Screenshot detection==
Android 14 has added a "screenshot event" and Android 15 a "screen recording event". This allows apps to register when the owner takes a screenshot or screen recording. An online poll shows most users are opposed to screenshot detection.<ref>[https://www.androidauthority.com/android-14-screenshot-detection-api-3389527/ Android 14's screenshot detection system is getting adopted by more apps] ([http://web.archive.org/web/20251212004411/https://www.androidauthority.com/android-14-screenshot-detection-api-3389527/ Archived])</ref>
Android 14 has added a "screenshot event" and Android 15 a "screen recording event". This allows apps to register when the owner takes a screenshot or screen recording. An online poll shows most users are opposed to screenshot detection.<ref>[https://www.androidauthority.com/android-14-screenshot-detection-api-3389527/ Android 14's screenshot detection system is getting adopted by more apps] ([http://web.archive.org/web/20251212004411/https://www.androidauthority.com/android-14-screenshot-detection-api-3389527/ Archived])</ref>
== See also ==
* [[Data lock-in]]


==References==
==References==