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"