
Detects device screenshots with a simple API, handling platform-specific logic. Offers compatibility with Swift and requires special permissions on older Android versions.
KScreenshotDetector is Kotlin Multiplatform (Android, iOS) library to detect when users take device screenshots.
Add the dependency to your project:
[versions]
kscreenshot-detector = "1.0.0"
[libraries]
kScreenshotDetector = { module = "com.viktormykhailiv:kscreenshot-detector", version.ref = "kscreenshot-detector" }
[plugins]implementation(libs.kScreenshotDetector)
repositories {
mavenCentral()
}
dependencies {
implementation("com.viktormykhailiv:kscreenshot-detector:1.0.0")
}The API is simple, you just collect events when screenshot is detected and KScreenshotDetector cares itself about platform's internal logic (e.g. registering listeners, OS versions).
KScreenshotDetector().detectScreenshots()
.collect {
println("Detected screenshot")
}Prior to Android 14 there is no reliable API for screenshot detection, so KScreenshotDetector uses a workaround which requires READ_EXTERNAL_STORAGE permission.
Make sure before using KScreenshotDetector you have granted READ_EXTERNAL_STORAGE permission, otherwise detectScreenshots will throw ReadExternalStoragePermissionNotGrantedException.
KScreenshotDetector is Swift compatible and can be added as package dependency to Xcode projects.
import KScreenshotDetectorK
for await _ in KScreenshotDetector().detectScreenshots() {
print("Detected screenshot")
}In Xcode, choose File | Add Package Dependencies.
In the search field, enter https://github.com/vitoksmile/KScreenshotDetector-SPM:
Press the Add package button.
KScreenshotDetector is Kotlin Multiplatform (Android, iOS) library to detect when users take device screenshots.
Add the dependency to your project:
[versions]
kscreenshot-detector = "1.0.0"
[libraries]
kScreenshotDetector = { module = "com.viktormykhailiv:kscreenshot-detector", version.ref = "kscreenshot-detector" }
[plugins]implementation(libs.kScreenshotDetector)
repositories {
mavenCentral()
}
dependencies {
implementation("com.viktormykhailiv:kscreenshot-detector:1.0.0")
}The API is simple, you just collect events when screenshot is detected and KScreenshotDetector cares itself about platform's internal logic (e.g. registering listeners, OS versions).
KScreenshotDetector().detectScreenshots()
.collect {
println("Detected screenshot")
}Prior to Android 14 there is no reliable API for screenshot detection, so KScreenshotDetector uses a workaround which requires READ_EXTERNAL_STORAGE permission.
Make sure before using KScreenshotDetector you have granted READ_EXTERNAL_STORAGE permission, otherwise detectScreenshots will throw ReadExternalStoragePermissionNotGrantedException.
KScreenshotDetector is Swift compatible and can be added as package dependency to Xcode projects.
import KScreenshotDetectorK
for await _ in KScreenshotDetector().detectScreenshots() {
print("Detected screenshot")
}In Xcode, choose File | Add Package Dependencies.
In the search field, enter https://github.com/vitoksmile/KScreenshotDetector-SPM:
Press the Add package button.