From 227a5e677f8e303039e4b03a75c8ffe030f971de Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 19 May 2025 15:56:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E5=85=85=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E5=8D=8E=E4=B8=BA=20Android=2010=20=E8=AE=BE=E5=A4=87=E4=B8=8A?= =?UTF-8?q?=E7=9A=84=E7=83=AD=E5=90=AF=E5=8A=A8=E5=B9=BF=E5=91=8A=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/ad/AdDelegateHelper.kt | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt index 193c99686a..68721bd8ac 100644 --- a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt +++ b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt @@ -189,20 +189,14 @@ object AdDelegateHelper { // HarmonyOS 2.2.0 版本不展示第三方开屏广告 (因为会引起奇怪的闪退) if (MetaUtil.getRom().name == "HarmonyOS" && MetaUtil.getRom().versionName == "2.2.0" - && config.displayRule.adSource == "third_party_ads") { + && config.displayRule.adSource == AD_TYPE_SDK) { return } // 华为系 Android 10 不展示第三方开屏广告 (因为会引起奇怪的闪退) - if (config.displayRule.adSource == "third_party_ads" - && Build.VERSION.SDK_INT == Build.VERSION_CODES.Q - ) { - val manufacturer = Build.MANUFACTURER.lowercase(Locale.CHINA) ?: "" - - if (manufacturer == "huawei" || manufacturer == "honor") { - return - } + if (isBuggyHuaweiDevice() && config.displayRule.adSource == AD_TYPE_SDK) { + return } mSplashAd = config @@ -233,6 +227,7 @@ object AdDelegateHelper { private fun shouldShowStartUpAdWhenHotLaunch() = (mCsjAdImpl != null) && mSplashAd?.displayRule?.hotStartSplashAd?.type == AD_TYPE_SDK && mSplashAd?.hotStartThirdPartyAd != null + && !isBuggyHuaweiDevice() /** * 是否需要显示下载管理广告 @@ -801,4 +796,16 @@ object AdDelegateHelper { mCsjAdImpl?.cancelSplashAd(context) } + /** + * 是否为有问题的华为系 Android 10 设备 + */ + private fun isBuggyHuaweiDevice(): Boolean { + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q) { + val manufacturer = Build.MANUFACTURER.lowercase(Locale.CHINA) ?: "" + return manufacturer == "huawei" || manufacturer == "honor" + } else { + return false + } + } + } \ No newline at end of file