无法阻止统一应用的屏幕截图

时间:2019-07-16 06:52:24

标签: android unity3d screenshot

我想阻止我的统一应用程序中的屏幕截图。

因此,我引用了以下网址来应用我的代码。 https://developer.android.com/reference/android/view/SurfaceView#setSecure(boolean)

除Google助手外,它在所有android设备和screencapture应用程序上的通用屏幕截图中均有效。

这是重现此问题的一些步骤。

  1. 导出适用于Android Studio的统一示例应用程序。
  2. 在onCreate函数(UnityPlayerActivity.java)中应用以下代码。

    View v = this.getWindow().getDecorView();
    ViewGroup vg = (ViewGroup) v;
    for( int i=0; i< vg.getChildCount(); i++)
    {
       if ( vg.getChildAt(i) instanceof SurfaceView)
       {
          ((SurfaceView) vg.getChildAt(i)).setSecure(true);
       }
    }
    
  3. 启动示例应用程序。

我还为我的应用程序引用了以下网址,以防止通过Google助手截屏。 https://developer.android.com/training/articles/assistant#excluding_views

根据本文,如果安全标记设置为true,则Google助手会排除当前视图。

所以我找到了所有SurfaceView子级并将安全标志设置为true。

正如我所写的,除google助手外,它可以在所有android设备和screencapture应用程序的通用屏幕截图中使用。

我也将ViewGroup对象更改为unity对象(mUnityPlayer),但结果相同。

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

我想阻止统一应用上的屏幕截图。 看看enter image description here https://docs.unity3d.com/ScriptReference/PlayerSettings-protectGraphicsMemory.html