如何防止Unity应用程序中的视频录制或屏幕录制?

问题描述 投票:0回答:1

我制作了一个 java 类并与 Unity 主活动绑定。如果我截取屏幕截图,那么代码可以正常工作,但是当我下载任何屏幕录制应用程序并运行应用程序时,它就无法工作。但是这段代码适用于 android 原生应用程序。另外,我搜索了很多帖子,但没有找到任何对我有帮助的东西,所以我创建了这篇帖子。

这是我的Maimainfest文件代码

<activity android:name="com.unity3d.player.StopRecoding"
      android:label="@string/app_name"
      android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
      android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    <action android:name="android.intent.action.VIEW" />
  </intent-filter>
</activity>

这是我的java代码

 mUnityPlayer = new UnityPlayer(this);  
 getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE,
 android.view.WindowManager.LayoutParams.FLAG_SECURE);

 setContentView(mUnityPlayer);Toast.makeText(this, "Activity bind succsesfuly", Toast.LENGTH_SHORT).show();

}
catch(Exception e)
{
Toast.makeText(this, "Activity bind faild " + 
e.getMessage(),Toast.LENGTH_SHORT).show();
}
android security unity3d screenshot video-capture
1个回答
0
投票

这分两步进行:

1 创建自定义活动

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

package my.package;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.*;

public class SafetyActivity extends UnityPlayerActivity {
@Override      
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
  }
}

2 创建自定义 android 清单

<?xml version="1.0" encoding="utf-8"?> <manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
    xmlns:tools="http://schemas.android.com/tools">
    <application>
        <activity android:name="my.package.SafetyActivity"
                  android:theme="@style/UnityThemeSelector">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application> </manifest>
© www.soinside.com 2019 - 2024. All rights reserved.