From d3545bc76661b8d4fb5fbae2c5eada5475b84155 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 2 Jun 2023 15:24:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=BC=BA=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=98=AF=E5=90=A6=E5=B7=B2=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/PackageUtils.java | 28 +++++++++++++++++-- app/src/main/java/com/gh/vspace/VHelper.kt | 3 +- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index 38582a549c..b5d61fef0c 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -38,6 +38,7 @@ import com.gh.gamecenter.manager.PackagesManager; import com.gh.vspace.VHelper; import com.gh.vspace.db.VGameEntity; import com.halo.assistant.HaloApp; +import com.lg.vspace.VirtualAppManager; import com.lightgame.utils.Utils; import net.dongliu.apk.parser.ApkFile; @@ -554,9 +555,32 @@ public class PackageUtils { } } + /** + * 根据包名,判断是否已安装该游戏 + * 不区分是否有桌面图标 + */ public static boolean isInstalledFromAllPackage(Context context, String packageName) { - ArrayList allPackageName = getAllPackageName(context); - return allPackageName.contains(packageName); + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + context.getPackageManager().getPackageInfo( + VirtualAppManager.AIDL_SERVER_PACKAGE_NAME, + PackageManager.PackageInfoFlags.of(0) + ); + } else { + context.getPackageManager().getPackageInfo(VirtualAppManager.AIDL_SERVER_PACKAGE_NAME, 0); + } + return true; + } catch (Exception e) { + ArrayList allPackageName = getAllPackageName(context); + boolean isInstalled = allPackageName.contains(packageName); + + if (isInstalled) { + // 能进这里说明上面的 try {} 结果有问题,记录一下 + SentryHelper.INSTANCE.onEvent("CHECK_INSTALLED_CONFLICT", "packageName", packageName); + } + + return isInstalled; + } } /* diff --git a/app/src/main/java/com/gh/vspace/VHelper.kt b/app/src/main/java/com/gh/vspace/VHelper.kt index a9728ded07..8263d7080e 100644 --- a/app/src/main/java/com/gh/vspace/VHelper.kt +++ b/app/src/main/java/com/gh/vspace/VHelper.kt @@ -380,8 +380,7 @@ object VHelper { * 畅玩助手是否已安装 */ fun isVSpaceInstalled(context: Context): Boolean { - val config = Config.getVSettingEntity()?.va - return config?.arch64 != null && PackageUtils.isInstalledFromAllPackage(context, config.arch64.packageName) + return PackageUtils.isInstalledFromAllPackage(context, VirtualAppManager.AIDL_SERVER_PACKAGE_NAME) } /**