fix: 自检里的版本号改成读包信息(原来写死常量,升到 1.4 还显示 1.0)

实测踩到:`Prefs.AGENT_VERSION = "1.0"` 是手工维护的常量,版本 bump 到 1.4 之后
自检和大字页仍显示 v1.0 —— 平台靠这个字段判断"设备上装的是哪一版",
显示错了会误导排查。改成直接读 PackageManager 的 versionName,以后不用记着改。
This commit is contained in:
2026-09-13 17:19:19 +08:00
parent f100301a56
commit 10a55849b6
3 changed files with 13 additions and 4 deletions
@@ -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())
}
@@ -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())
@@ -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"