我制作了一个 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();
}
这分两步进行:
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);
}
}
<?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>