找回密码
 立即注册
查看: 303|回复: 0

Unity 设置屏幕禁止休眠的四个方式

[复制链接]
发表于 2022-8-15 10:22 | 显示全部楼层 |阅读模式
1.Screen.sleepTimeout = SleepTimeout.NeverSleep; 并不是百分百有效

2.
    public static AndroidJavaObject Activity
    {
        get
        {
            AndroidJavaClass jcPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            return jcPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        }
    }

    const int FLAG_KEEP_SCREEN_ON = 128;
    public static void KeepScreenOn()
    {
        Debug.Log("Click KeepscreenOn");
        try
        {
            Activity.Call("runOnUiThread", new AndroidJavaRunnable(() => {
                //需要在UI线程中调用
                Activity.Call<AndroidJavaObject>("getWindow").Call("addFlags", FLAG_KEEP_SCREEN_ON);
            }));
        }
        catch (Exception e)
        {
            Debug.LogError(e.Message);
        }
    }

可以配合在AndroidManifest 中添加  <uses-permission android:name="android.permission.WAKE_LOCK"/> 一起使用



  3.AndroidManifest主Activity 添加Them配置 valuse下添加syles.xml文件
    <activity
            android:name="com.qk.unity.QuickUnityPlayerProxyActivity"
            android:configChanges="fontScale|orientation|keyboardHidden|locale|navigation|screenSize|uiMode"
             android:theme = "@style/MapAutoFullScreenTheme"
            android:screenOrientation="portrait"
            tools:replace="android:configChanges,android:screenOrientation,android:theme"
            android:exported="true">
      <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>



styles.xml 文件
<resources>
<style name="MapAutoFullScreenTheme" >
  <item name="android:windowNoTitle">true</item>
  <item name="android:windowActionBar">false</item>
  <item name="android:windowFullscreen">true</item>
  <item name="android:windowContentOverlay">@null</item>
  <item name="android:keepScreenOn">true</item>
</style>
</resources>4.第三种方法无法解决刘海屏问题 会一直存在刘海屏 解决方法:修改style.xml 套用Unity官方布局


<resources>
  <style name="MapAutoFullScreenTheme" parent="BaseUnityTheme">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:keepScreenOn">true</item>
  </style>
  <style name="BaseUnityTheme" parent="android:Theme.Light.NoTitleBar.Fullscreen">
  </style>
  <style name="UnityThemeSelector.Translucent" parent="@style/UnityThemeSelector">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
  </style>
</resources>
以上基本解决息屏及适配问题,真的是不容易啊,还望点个赞或者打赏一下,感谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 07:39 , Processed in 0.089638 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表