【问题标题】:Android exclude view from screenshotAndroid 从屏幕截图中排除视图
【发布时间】:2019-12-29 04:37:36
【问题描述】:

所以我有一项服务可以从我的应用程序运行覆盖视图(就像 facebook messenger 图标一样)。当您单击它时,它会打开另一个视图,其中包含一些信息。有没有办法阻止该视图仅在用户在其设备上截屏时显示?我的意思不是使用getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); 来一起停止屏幕截图,而是在截屏时让该视图不可见?

【问题讨论】:

    标签: android screenshot android-view


    【解决方案1】:

    不,抱歉——你的选择是 FLAG_SECURE 窗口,或者什么都没有。您不会在即将截取屏幕截图时收到通知,以便对其进行任何响应。

    【讨论】:

      【解决方案2】:

      如果我正确理解了这个问题,您希望保护部分内容不受屏幕截图的影响,而不是整个窗口。正如@CommonsWare 建议的那样,这是不可能的。但是,如果你绝望的话,可能会有一个(愚蠢的)解决方案。

      此解决方案可能看起来有点不切实际,并且不适用于您的用例(或任何用例).. 但无论如何

      也许,您可以显示两个窗口(因此也显示活动) - 一个包含敏感内容,一个包含非敏感内容(并在敏感窗口/活动上使用 FLAG_SECURE

      如何同时显示两个活动?

      • 从 N 开始,Android 支持 multi window mode(多个活动,并排)
      • 您可以强制一个活动以多窗口模式启动/在启动后切换到多窗口模式.. 使用this 技术(将 AccessibilityService.html#GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN 传递给 AccessibilityService.html#performGlobalAction(int) ) .比如说,你在这种模式下启动了非敏感活动。
      • 一旦您的非敏感活动处于分屏模式,您可以启动sensitive 活动,也可以使用FLAG_ACTIVITY_LAUNCH_ADJACENT 在分屏模式下启动(此标志仅在设备已处于多窗口模式时有效,我们可以通过 AccessibilityService 技术实现)

      免责声明:我没有尝试过。此外,如果它有效,它显然适用于 Android N 及更高版本。希望它有所帮助(可能不会,抱歉:-))

      【讨论】:

        【解决方案3】:

        在您的视图中使用 SurfaceView,以便为您提供帮助

        参考 Link

        【讨论】:

          猜你喜欢
          • 2016-06-28
          • 2017-05-05
          • 1970-01-01
          • 2021-09-24
          • 2022-10-06
          • 2016-10-24
          • 1970-01-01
          • 2014-01-22
          • 2021-07-12
          相关资源
          最近更新 更多