Screenshot detection identifies when a screenshot is taken on a device. Screenshots can expose sensitive app data, such as user credentials, personal content, or confidential information, leading to privacy and security risks. By detecting screenshots, apps can take preventive measures, such as:
Obscuring sensitive content before the screenshot is captured.
Notifying users that a screenshot has been taken.
Logging events for security monitoring and analysis.
Screen recording detection helps identify when a device's screen is being recorded. Screen recordings can capture sensitive data, such as user interactions and proprietary app content. By detecting screen recordings, apps can:
Mask sensitive information during recording.
Alert users that their screen is being recorded.
Log events for further security analysis.
Platform-Specific Implementations
// Android screen recording detection
override fun onScreenRecordingDetected() {
TODO("Not yet implemented")
}
// iOS screen recording and screen mirrorring detection
case screenRecording
// Flutter screen recording detection and screen mirrorring detection
onScreenRecording: () => print("Screen recording detected")
// React Native, Capacitor and Cordova
screenRecording: () => {
console.log('screenRecording');
},
Recommended action: Log the event on your BE or hide the sensitive content.
Screen Capture Protection (Android only)
Screen capture protection prevents your app’s content from appearing in screenshots and screen recordings. When enabled, captured images and recordings display a black screen, protecting sensitive information.
To enable or disable protection dynamically, pass true or false.
// Android screen capture protection
Talsec.blockScreenCapture(activity, true)
// Flutter screen capture protection
await Talsec.instance.blockScreenCapture(enabled: true)
// React Native
import { blockScreenCapture } from 'freerasp-react-native';
await blockScreenCapture(true);
// response: Screen capture is now Blocked
// Capacitor
import { blockScreenCapture } from 'capacitor-freerasp';
await blockScreenCapture(true);
// response: true
// Cordova
await talsec.blockScreenCapture(true);
// response: Screen capture is now Blocked
Check Screen Capture State
To check whether screen capture is currently blocked in the application, use the following method:
For Android 11 (API 30) and lower, Screen Capture is able to help around 70% of the devices reliably. This is because on certain devices, keyboard taps can be recorded.