如何在Unity C#脚本中添加WindowManager
的LayoutParams
标志。
例如,我可以通过以下代码在 Android 中执行此操作。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
你可以这样做:
AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject win = activity.Call<AndroidJavaObject>("getWindow");
AndroidJavaObject lp = new AndroidJavaClass("android/view/WindowManager$LayoutParams");
win.Call("addFlags",lp.GetStatic<int>("FLAG_SHOW_WHEN_LOCKED"));
win.Call("addFlags",lp.GetStatic<int>("FLAG_ALLOW_LOCK_WHILE_SCREEN_ON"));
我最近在做同样的事情,这是工作,它漂浮在锁定屏幕的顶部,如果用户按HOME键,他将返回系统锁定屏幕。
请注意,"/"或"."是相同的。 $是内部类,在这种情况下,LayoutParams是WindowManager的内部类。