安卓在默认锁定屏幕上使用Unity C#脚本的活动

本文关键字:Unity 脚本 活动 默认 锁定 屏幕 | 更新日期: 2023-09-27 18:30:22

如何在Unity C#脚本中添加WindowManagerLayoutParams标志。

例如,我可以通过以下代码在 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);

安卓在默认锁定屏幕上使用Unity C#脚本的活动

你可以这样做:

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的内部类。