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 c7eac0709d..0b9b9c4f58 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -99,6 +99,8 @@ public class PackageUtils { // ghVersion 不存在即是非插件游戏 if (TextUtils.isEmpty(apkEntity.getGhVersion())) { + int versionCodeFromRequest = apkEntity.getVersionCode(); + int versionCodeFromInstalledApp = getVersionCodeByPackageName(apkEntity.getPackageName()); String versionFromRequest = apkEntity.getVersion(); String versionFromInstalledApp = getVersionNameByPackageName(apkEntity.getPackageName()); @@ -110,6 +112,11 @@ public class PackageUtils { // 根据版本判断是否需要更新 shouldShowUpdate = new Version(versionFromRequest).isHigherThan(versionFromInstalledApp); + // versionName 没法判定的时候尝试使用 versionCode 去判断 + if (!shouldShowUpdate && versionCodeFromRequest != 0) { + shouldShowUpdate = versionCodeFromRequest > versionCodeFromInstalledApp; + } + if (shouldShowUpdate) { GameUpdateEntity updateEntity = new GameUpdateEntity(); updateEntity.setId(gameEntity.getId()); diff --git a/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt index fa96d3bf88..d702a22b8a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ApkEntity.kt @@ -36,7 +36,7 @@ data class ApkEntity(@SerializedName("package") @SerializedName("sign") var signature: String? = "", @SerializedName("version_code") - var versionCode: Int? = 0, + var versionCode: Int = 0, // 以下是历史版本用的字段,其它地方可能会没有 @SerializedName("update_time")