fix: 自检里的版本号改成读包信息(原来写死常量,升到 1.4 还显示 1.0)
实测踩到:`Prefs.AGENT_VERSION = "1.0"` 是手工维护的常量,版本 bump 到 1.4 之后 自检和大字页仍显示 v1.0 —— 平台靠这个字段判断"设备上装的是哪一版", 显示错了会误导排查。改成直接读 PackageManager 的 versionName,以后不用记着改。
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user