From 10a55849b6b242791b17785dcb57126fdb295a77 Mon Sep 17 00:00:00 2001 From: butubb <1422726308@qq.com> Date: Sun, 13 Sep 2026 17:19:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=87=AA=E6=A3=80=E9=87=8C=E7=9A=84?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7=E6=94=B9=E6=88=90=E8=AF=BB=E5=8C=85?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=88=E5=8E=9F=E6=9D=A5=E5=86=99=E6=AD=BB?= =?UTF-8?q?=E5=B8=B8=E9=87=8F=EF=BC=8C=E5=8D=87=E5=88=B0=201.4=20=E8=BF=98?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=201.0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实测踩到:`Prefs.AGENT_VERSION = "1.0"` 是手工维护的常量,版本 bump 到 1.4 之后 自检和大字页仍显示 v1.0 —— 平台靠这个字段判断"设备上装的是哪一版", 显示错了会误导排查。改成直接读 PackageManager 的 versionName,以后不用记着改。 --- .../java/com/example/deviceagent/InfoActivity.kt | 2 +- .../java/com/example/deviceagent/PingActivity.kt | 2 +- app/src/main/java/com/example/deviceagent/Prefs.kt | 13 +++++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/deviceagent/InfoActivity.kt b/app/src/main/java/com/example/deviceagent/InfoActivity.kt index 769c06e..93bcc0a 100644 --- a/app/src/main/java/com/example/deviceagent/InfoActivity.kt +++ b/app/src/main/java/com/example/deviceagent/InfoActivity.kt @@ -87,7 +87,7 @@ class InfoActivity : Activity() { "序列号 $serial", "平台 $server", "指纹 ${Prefs.fingerprint(this)}", - "Agent v${Prefs.AGENT_VERSION}" + "Agent v${Prefs.agentVersion(this)}" ).filter { it.substringAfter(" ").trim().isNotEmpty() }.joinToString("\n") tvTime.text = "更新于 " + SimpleDateFormat("HH:mm:ss", Locale.CHINA).format(Date()) } diff --git a/app/src/main/java/com/example/deviceagent/PingActivity.kt b/app/src/main/java/com/example/deviceagent/PingActivity.kt index 7bb84a2..65c8ca9 100644 --- a/app/src/main/java/com/example/deviceagent/PingActivity.kt +++ b/app/src/main/java/com/example/deviceagent/PingActivity.kt @@ -24,7 +24,7 @@ class PingActivity : Activity() { super.onCreate(savedInstanceState) val info = JSONObject().apply { put("package", packageName) - put("agent_version", Prefs.AGENT_VERSION) + put("agent_version", Prefs.agentVersion(this@PingActivity)) put("agent_api_version", Prefs.API_VERSION) put("fingerprint", Prefs.fingerprint(this@PingActivity)) put("local_ip", Prefs.localIp()) diff --git a/app/src/main/java/com/example/deviceagent/Prefs.kt b/app/src/main/java/com/example/deviceagent/Prefs.kt index c5d45eb..71c8271 100644 --- a/app/src/main/java/com/example/deviceagent/Prefs.kt +++ b/app/src/main/java/com/example/deviceagent/Prefs.kt @@ -11,8 +11,17 @@ import java.io.BufferedReader * --es server http://192.168.20.220:18050 --es token <令牌> */ object Prefs { - /** Agent 自身版本,与平台侧 doc/DEVICE_AGENT.md 的契约版本对齐 */ - const val AGENT_VERSION = "1.0" + /** + * Agent 自身版本:**直接读包信息**,不要手工维护常量 + * (实测踩过:版本升到 1.4 了,自检里还写着 1.0——常量忘了改)。 + */ + fun agentVersion(ctx: Context): String = try { + ctx.packageManager.getPackageInfo(ctx.packageName, 0).versionName ?: "?" + } catch (e: Exception) { + "?" + } + + /** 与平台 doc/DEVICE_AGENT.md 契约里的 agent_api_version 对齐 */ const val API_VERSION = 1 private const val FILE = "device_agent"