检测 Android 4.0+ 上的屏幕截图尝试

2024-01-06

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

为了进一步保护用户数据,每当有人尝试截取活动应用程序的屏幕截图时,我们都希望向我们的服务器发出 Web 服务调用。

到目前为止我见过的解决方案包括这个片段 http://commonsware.com/blog/2012/01/16/secure-against-screenshots.html旨在防止截取屏幕截图并在 Toast 中向用户抛出屏幕截图失败消息。我正在考虑的另一种方法是监听某些设备用来截取屏幕截图的音量减小和电源按钮的组合(尽管三星 S4 等设备偏离了这种方法)。我最后的手段是使用FileObserver在截图图库的位置 https://stackoverflow.com/questions/14951390/detection-of-screenshot-taken在应用程序运行时进行更改,但这似乎也是一个次优的解决方案,并且引入了我不希望有的权限请求。我也无法确定图像的文件目的地。

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


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

Maybe 这个答案 https://android.stackexchange.com/a/119767/61616解决了有关如何在 Snapchat 中检测何时截取屏幕截图的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测 Android 4.0+ 上的屏幕截图尝试 的相关文章

  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • 强制用户在 Android 中的 EditText 中输入内容

    我的活动中有几个编辑文本 我希望我的用户在提交表单之前正确输入 我该怎么做 我还有旋转器和 RadioGroup 按钮 你可以加验证在提交按钮上单击 private boolean validateFields int yourDesire
  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • android webview 函数 onPagefinished 被调用两次

    我的android webview功能onPageFinished被调用两次 我不知道为什么 但它在 android 2 2 上运行良好 但当我将其升级到 4 时 它就不起作用了 代码附在下面 Code Override public vo
  • ProGuard 无法与 Windows 中使用的 Joda Time 一起编译

    实际上 这是一个答案 而不是一个问题 我确实在 Windows 上花了很多时间 使用 JodaTime 并使用 ProGuard 将其包含在我的 Android 项目中 混淆器配置 libraryjars C Users Reto Docu
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Renderscript 示例构建错误

    所以我想尝试使用 RenderScript 的示例 并在 Eclipse 中导入了 HelloWorld 但它给了我这样的错误 2011 10 25 13 10 48 HelloWorld home mileoresko workspace
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • Android Studio更新到1.5后Gradle错误

    今天我已将 Android Studio 更新到 v1 5 我的 libgdx 项目在这次更新之前运行良好 现在我收到此错误消息 Error Unable to load class org gradle mvn3 org sonatype
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • 从 TextView 中显示的数字中删除小数点[重复]

    这个问题在这里已经有答案了 对于我的简单计算器 我将结果显示在TextView 但它总是显示小数 我怎样才能删除它们 这是我的代码 public class MainActivity extends Activity implements
  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • Android Studio - 值必须 ≥ 0

    我在 Android Studio 中收到与光标有关的错误 我的代码中有以下行 String data cursor getString cursor getColumnIndex columnIndex columnIndex 被传递到该
  • 为什么Android应用程序在发布到市场后尺寸会增加?

    我最近在 Android 市场上发布了我的应用程序 显示应用程序大小为 5 4MB 而实际 apk 大小为 2 8MB 为什么显示多出2MB 我应该如何限制我的应用程序大小 请帮我 您的应用程序大小会增加 因为您使用了复制保护选项ON在发布
  • onClick 未在带有子项的 LinearLayout 上触发

    我有一个自定义的 LinearLayout 和一个较小的 TextView 子级 我希望能够单击 TextView 未覆盖的区域 因此我将 clickable true 和 onclicklistener 设置为 LinearLayout
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • 展平递归列表

    显然有很多关于这个主题的问题 但我看不到提出的任何通用解决方案 我有一个深度递归列表 并希望将其展平为包含所有非列表项的单个列表 例如 采用这个嵌套列表 d list list list iris sample 1 150 3 iris s
  • 输入重定向到 Java - 无法找到或加载主类

    我尝试了每个在线解决方案 但仍然得到相同的结果 我试图让我的代码在文件 distinct txt 上运行 这是我运行它的尝试 我尝试了不同的路径 但都给出了相同的结果 这是我的代码 package pset2 sol import edu
  • 将 Angular 4.x 迁移到 Angular 5 [重复]

    这个问题在这里已经有答案了 我已阅读以下博客和文档 角度博客 https blog angular io version 5 0 0 of angular now available 37e414935ced 鳄鱼 IO 文档 https
  • 如何在 Mac OSX clang 上获得对 thread_local 的支持?

    如图所示这个答案 https stackoverflow com a 23850891 115751 Mac OSX 上的 Xcode 中的 clang 不支持thread local即使设置了 C 11 标志也可以存储 即使在最新版本上
  • 为什么我的调试器有时会崩溃并做出与我的代码不一致之类的事情?

    当我在我的 C 代码上使用调试器时 在我的特定情况下 是 QT Creator 和 GDB 一起激发了这个灵感 有时甚至在调用之后make clean其次是make调试器似乎吓坏了 有时它似乎与另一段代码的行号对齐 并且会跳来跳去 有时这会
  • string::find 的 C++ 正则表达式等效项

    我正在尝试编辑一个开源 C 程序来进行简单的调整 以便输入之一接受正则表达式字符串而不是字符串 我是一个完全的 C 菜鸟 从未写过任何东西 所以我希望有人能给我指出一个可以工作的函数 采取以下代码 include
  • 每次请求时都会调用tornado.web.RequestHandler中的初始化/

    有一个initialize中的方法tornado web RequestHandler类 每次有请求时都会调用吗 是的 龙卷风在召唤initialize对于每个请求 如果您想在请求之间共享状态 例如数据库连接 将其存储在self appli
  • NHibernate 属性公式过滤器

    我有以下课程 MyClass public virtual int Id get set public virtual int Code get set public virtual int Description get set publ
  • 如何将文件下载到本地下载文件夹?

    我使用 WebView 启用了文件的下载设置 我正在使用 DownloadManager 保存文件 但这些文件不会出现在本地下载目录中 我下载的文件保存在这里 gt file storage emulated 0 Android data
  • 带有 NULL 的指针算术

    有人可以解释一下为什么 int main void char a NULL int b NULL double c NULL printf n d d d n d d d n n int a 1 int b 1 int c 1 int a
  • Windows 在哪里存储 ACL,ACL 是否跟随文件从一台计算机传输到另一台计算机?

    我们的应用程序使用的组件需要在可执行文件的目录中包含许可证文件 该文件恰好是 NET WinForms 应用程序 尽管我认为这对这个问题并不重要 当安装在某些 XP Pro 计算机上时 迄今为止仅数百台计算机中的三台 该组件会引发许可证异常
  • 去掉itextsharp中的左右侧边框,想要一个矩形框

    Remove the left and right side borders of Approved By and sign and also i need to draw a small rectangular box after cal
  • 无法打开自定义文件扩展名

    我有一个我希望支持的文件格式 它只是一个 zip 但我已将其重命名为 amg 以便我的应用程序可以读取它 在我的带有姜饼的三星手机上 它工作正常并且可以打开 在我的带有 Kitkat 的摩托罗拉手机上 我得到的只是无法打开它 我尝试过这里找
  • 使用 Lua I/O 函数创建新文件

    我开始学习io 函数 并尝试在我的代码中实现它们 我一直在寻找这个问题的答案 但似乎没有任何明确的答案是或否 或者至少我没有看到 我希望这里有人能知道答案并能够提供帮助 我想创建一个可以随着时间的推移写入的文本文件 它基本上是一个日志 我将
  • 为什么要禁用 IpV6 Hadoop 安装

    我已经在 Ubuntu 系统上成功安装并运行 Hadoop 我正在关注一些文章的教程 我很困惑为什么每一步都建议禁用 ipv6 如果我不在系统上禁用 ipv6 会有影响吗 有谁能回答一下吗 就像声明的那样here http wiki apa
  • CKEditor:在粘贴上应用removeFormat

    我已经成功地设置了一个粘贴事件来捕获粘贴到文本区域的 HTML 我需要在将 HTML 粘贴到文本区域之前或之时自动将removeFormat 命令应用于该 HTML 以便我可以去除其中的类 各种标签和其他属性 有人可以指出我正确的方向来正确
  • VBA“ThisWorkbook.Close”不关闭此工作簿!

    我正在 Excel 中编写一个 VBA 宏 该宏应该打开 fileB xls 然后在打开后立即关闭 由于我们将讨论 3 个 Excel 文件 因此我将第一个文件命名为 fileA 文件 A 用户窗体上按钮的代码如下所示 Private Su
  • 一个应用程序中哪一个应该是单例? MongoClient 还是 MongoDatabase 还是 MongoCollection?

    正如文档中提到的 http mongodb github io mongo java driver 3 3 driver getting started quick tour http mongodb github io mongo jav
  • 错误“此方法必须返回 int 类型的结果”?

    我下面有这段代码 它不断告诉我Thanksgiving 必须返回int 类型的结果 我已经投射了所有结果只是为了确定 但似乎没有任何效果 为什么我会收到此错误 public class Thanksgiving private static
  • 检测 Android 4.0+ 上的屏幕截图尝试

    我正在开发一个 Android 应用程序 该应用程序高度重视保护用户的数据 以至于不会在本地设备的持久内存中存储任何内容 为了进一步保护用户数据 每当有人尝试截取活动应用程序的屏幕截图时 我们都希望向我们的服务器发出 Web 服务调用 到目