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) } /**