feat(sdk-core): deviceId 优先使用 ANDROID_ID,卸载重装后仍可识别设备
- 优先读取 Settings.Secure.ANDROID_ID(绑定设备,非应用) - 过滤已知无效值(9774d56d682e549c 等) - ANDROID_ID 前缀 aid_ 区分来源 - 回退到随机 UUID(恢复出厂设置等场景)
这个提交包含在:
父节点
5d1b07b997
当前提交
fd37f57fbf
@ -337,9 +337,25 @@ object XuqmSDK {
|
||||
val key = "device_id"
|
||||
val stored = prefs.getString(key, null)
|
||||
if (!stored.isNullOrBlank()) return stored
|
||||
val generated = java.util.UUID.randomUUID().toString()
|
||||
prefs.edit().putString(key, generated).apply()
|
||||
return generated
|
||||
|
||||
// 优先使用 ANDROID_ID(卸载重装后不变,绑定设备而非应用)
|
||||
val androidId = runCatching {
|
||||
android.provider.Settings.Secure.getString(
|
||||
context.contentResolver,
|
||||
android.provider.Settings.Secure.ANDROID_ID,
|
||||
)
|
||||
}.getOrNull()
|
||||
|
||||
// 已知的无效值:某些设备返回固定值或 null
|
||||
val badValues = setOf("", "9774d56d682e549c", "null", "unknown")
|
||||
val deviceId = if (!androidId.isNullOrBlank() && androidId.lowercase() !in badValues) {
|
||||
"aid_$androidId"
|
||||
} else {
|
||||
java.util.UUID.randomUUID().toString()
|
||||
}
|
||||
|
||||
prefs.edit().putString(key, deviceId).apply()
|
||||
return deviceId
|
||||
}
|
||||
|
||||
private fun platformInitException(platformUrl: String, appKey: String, cause: Throwable): Throwable {
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户