Unreal发布Android在刘海屏手机上不能全屏显示问题

03-18 7745阅读 0评论

Unreal 4.27发布Android在刘海屏手机上不能全屏显示问题

  • Android设置全屏
  • 刘海屏全屏设置
  • 4.27设置刘海屏在部分手机不能显示问题

    Android设置全屏

    AndroidManifest.xml文件配置

        ...
        
          
        
        
       
       ...
    

    其中设置android:resizeableActivity="false",增加,默认最大的宽高比是2,现在很多手机超过这个宽高比,所以可以设置更大的宽高比。

    Unreal不能直接修改AndroidManifest.xml文件,需要通过Project Setting->Platforms->Android->Advanced APK Packaging进行设置。

    实际上,我们不需要修改AndroidManifest.xml,在Project Setting->Platforms->Android->APK Packaging有选项设置。

    Unreal发布Android在刘海屏手机上不能全屏显示问题 第1张

    以上两个选项设置允许全屏和最大宽高比,但不适合刘海屏全屏。因为刘海屏的刘海并不属于常规全屏的一部分。

    刘海屏全屏设置

    Unreal 4.27是有选项直接设置刘海屏全屏显示的。

    Unreal发布Android在刘海屏手机上不能全屏显示问题 第2张

    但测试很多手机都不能在刘海屏显示。

    4.27设置刘海屏在部分手机不能显示问题

    问题出在打包的Java程序里

    Unreal发布Android在刘海屏手机上不能全屏显示问题 第3张

    打开上面的java文件,可以看到java代码里还有机型测试。

    		// allow certain models for now to use full area around cutout
    		boolean BlockDisplayCutout = true;
    		if (android.os.Build.MANUFACTURER.equals("HUAWEI"))
    		{
    			BlockDisplayCutout = false;
    		}
    		else if (android.os.Build.MANUFACTURER.equals("HMD Global"))
    		{
    			String model = android.os.Build.MODEL;
    			if (model.equals("Nokia 8.1"))
    			{
    				BlockDisplayCutout = false;
    			}
    		}
    		else if (android.os.Build.MANUFACTURER.equals("samsung"))
    		{
    			String model = android.os.Build.MODEL;
    			if (model.startsWith("SM-G970") || model.startsWith("SM-G973") || model.startsWith("SM-G975") ||
    				model.startsWith("SC-03L") || model.startsWith("SCV41") || model.startsWith("SC-04L") ||
    				model.startsWith("SCV42") || model.startsWith("SM-N97") || model.startsWith("SM-F700") ||
    				model.startsWith("SM-G98") || model.startsWith("SCV47") || model.startsWith("SCG01") ||
    				model.startsWith("SCG02") || model.startsWith("SC-51A") || model.startsWith("SC-52A") ||
    				android.os.Build.VERSION.SDK_INT >= 28)
    			{
    				BlockDisplayCutout = false;
    			}
    		}
    		else if (android.os.Build.MANUFACTURER.equals("Xiaomi"))
    		{
    			String model = android.os.Build.MODEL;
    			if (model.startsWith("POCOPHONE F1"))
    			{
    				BlockDisplayCutout = false;
    			}
    		}
    		else if (android.os.Build.MANUFACTURER.equals("OnePlus"))
    		{
    			String model = android.os.Build.MODEL;
    			if (model.startsWith("IN2020") || model.startsWith("IN2021") || model.startsWith("IN2023") ||
    				model.startsWith("IN2025") || model.startsWith("IN2010") || model.startsWith("IN2011") ||
    				model.startsWith("IN2013") || model.startsWith("IN2015") || model.startsWith("IN2017") ||
    				model.startsWith("IN2019") || model.startsWith("AC2001") || model.startsWith("AC2003") ||
    				model.startsWith("BE2025") || model.startsWith("BE2026") || model.startsWith("BE2028") ||
    				model.startsWith("BE2029"))
    			{
    				BlockDisplayCutout = false;
    			}
    		}
    		if (BlockDisplayCutout)
    		{
    			UseDisplayCutout = false;
    		}
    

    UseDisplayCutout从打包参数接收设置,但以上java代码又做了机型判断,如果机型不在目录中,UseDisplayCutout会被强制设置为false。

    		if (BlockDisplayCutout)
    		{
    			UseDisplayCutout = false;
    		}
    

    那么,我们只要修改这个代码,把强制设置UseDisplayCutout = false注释掉应该就可以显示刘海屏了。

    直接修改Intermediate\Android\arm64\src\com\epicgames\ue4\SplashActivity.java文件是无用的,Intermediate目录下的文件在编译的时候会被新生成代码覆盖掉的。

    我们需要把Intermediate\Android\arm64\src\com\epicgames\ue4\SplashActivity.java文件拷贝到Build\Android\src\com\epicgames\ue4\SplashActivity.java(如果已经有了,就不用拷贝了),然后修改Build\Android\src\com\epicgames\ue4\SplashActivity.java才行。

    		if (BlockDisplayCutout)
    		{
    			// UseDisplayCutout = false;
    		}
    

    经过以上设置,实际测试可以在OPPO手机上正常显示刘海屏全屏了。


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,7745人围观)

还没有评论,来说两句吧...

目录[+]