防止在Unity Android应用中捕获屏幕

时间:2014-12-11 16:18:02

标签: android android-activity unity3d

我正在尝试创建Unity Android插件,以便在运行应用时阻止屏幕截图。我读了以下内容。

How do I prevent Android taking a screenshot when my app goes to the background?

根据我的阅读,我需要在Activity onCreate处理程序中调用以下内容....

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);

但是我无法让它发挥作用。我尝试过扩展UnityPlayerActivity,UnityPlayerNativeActivity,甚至是android.app.NativeActivity。我已经验证插件本身工作正常(我能够调用插件中的其他函数)并且onCreate方法正在执行。

我已尝试在onCreate中的多个位置设置标志,例如setContentView(mUnityPlayer)之前和/或之后,但它永远不会有效。

我在HTC One m8上进行测试。谁知道问题可能是什么?

1 个答案:

答案 0 :(得分:1)

将它放在你的onCreate()方法中:

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

问题可能是你的参考,当我测试它时,这个工作正常:

public class FlagSecureTestActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

getWindow().setFlags(LayoutParams.FLAG_SECURE,
                     LayoutParams.FLAG_SECURE);

setContentView(R.layout.main);
  }
}