android - 在 Android 4.0+ 上检测屏幕截图尝试

标签 android security screenshot

我正在开发一个 Android 应用程序,它高度重视保护用户数据,以至于不在本地设备的永久内存中存储任何内容。

为了进一步保护用户数据,每当有人试图截取 Activity 应用程序的屏幕截图时,我们希望对我们的服务器进行网络服务调用。

目前我看到的解决方案包括 this snippet旨在防止截取屏幕截图并在 Toast 中向用户抛出屏幕截图失败消息。我正在考虑的另一种方法是监听某些设备用来截取屏幕截图的音量调低和电源按钮的组合(尽管三星 S4 等设备偏离了这种方法)。我最后的手段是使用 FileObserver in the location of the screenshot Gallery在应用程序运行时进行更改,但这似乎也是一个次优的解决方案,并引入了一个我不想拥有的权限请求。我也不能确定图像的文件目的地。

我相信 Snapchat 应用程序能够在远程用户尝试截取屏幕截图时提醒参与者。除了对设备进行 root 之外,您对如何实现此功能有什么建议吗?也欢迎使用非官方方法。

最佳答案

FLAG_SECURE 可能是避免在窗口中截屏的最佳方式,但正如一些评论者所说,它有一些解决方法。

也许 this answer解决了有关他们如何在 Snapchat 中检测何时截屏的问题。

关于android - 在 Android 4.0+ 上检测屏幕截图尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502213/

相关文章:

4.1 API 上的 AndroidKeystore

ubuntu - 在ubuntu 12.04中运行的Phantomjs 'killed'不在Windows 7中运行

android - 在应用程序关闭时截取设备屏幕截图

ios - 在屏幕截图 iOS 中保持透明度

Android游戏循环,如何控制速度

android - 为什么我安装时所有 Activity/类(class)都显示在应用程序列表中?

javascript - Object.freeze 不会阻止对象被重新初始化?

java - 如何从 SOAP 响应中获取单个元素的值? ( java )

Android Pie - 隔夜服务一直被杀死

security - 为什么 JWT 需要客户端验证?