fix(telemetry): 将设备信息合并到每个事件的 properties 中上报服务端
设备信息(品牌/型号/OS/版本/语言)此前只存储在本地,对服务端分析毫无价值。 现在在 logEvent() 中将 deviceProps 合并到每个事件的 properties 字段, 使服务端 analytics 表能按设备维度进行统计分析。同时修复 _deviceContext 为 null 时的空指针异常(deviceContextId 使用 ?? '' 安全降级)。 适用于 mining-app 和 mobile-app 两端。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
033d1cde42
commit
482df12f91
|
|
@ -179,12 +179,22 @@ class TelemetryService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final deviceProps = _deviceContext != null
|
||||||
|
? {
|
||||||
|
'device_brand': _deviceContext!.brand,
|
||||||
|
'device_model': _deviceContext!.model,
|
||||||
|
'device_os': _deviceContext!.osVersion,
|
||||||
|
'app_version': _deviceContext!.appVersion,
|
||||||
|
'locale': _deviceContext!.locale,
|
||||||
|
}
|
||||||
|
: <String, dynamic>{};
|
||||||
|
|
||||||
final event = TelemetryEvent(
|
final event = TelemetryEvent(
|
||||||
eventId: const Uuid().v4(),
|
eventId: const Uuid().v4(),
|
||||||
type: type,
|
type: type,
|
||||||
level: level,
|
level: level,
|
||||||
name: eventName,
|
name: eventName,
|
||||||
properties: properties,
|
properties: {...deviceProps, ...?properties},
|
||||||
timestamp: DateTime.now(),
|
timestamp: DateTime.now(),
|
||||||
userId: _userId,
|
userId: _userId,
|
||||||
sessionId: _sessionManager.currentSessionId,
|
sessionId: _sessionManager.currentSessionId,
|
||||||
|
|
|
||||||
|
|
@ -183,17 +183,27 @@ class TelemetryService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final deviceProps = _deviceContext != null
|
||||||
|
? {
|
||||||
|
'device_brand': _deviceContext!.brand,
|
||||||
|
'device_model': _deviceContext!.model,
|
||||||
|
'device_os': _deviceContext!.osVersion,
|
||||||
|
'app_version': _deviceContext!.appVersion,
|
||||||
|
'locale': _deviceContext!.locale,
|
||||||
|
}
|
||||||
|
: <String, dynamic>{};
|
||||||
|
|
||||||
final event = TelemetryEvent(
|
final event = TelemetryEvent(
|
||||||
eventId: const Uuid().v4(),
|
eventId: const Uuid().v4(),
|
||||||
type: type,
|
type: type,
|
||||||
level: level,
|
level: level,
|
||||||
name: eventName,
|
name: eventName,
|
||||||
properties: properties,
|
properties: {...deviceProps, ...?properties},
|
||||||
timestamp: DateTime.now(),
|
timestamp: DateTime.now(),
|
||||||
userId: _userId,
|
userId: _userId,
|
||||||
sessionId: _sessionManager.currentSessionId,
|
sessionId: _sessionManager.currentSessionId,
|
||||||
installId: _installId,
|
installId: _installId,
|
||||||
deviceContextId: _deviceContext!.androidId,
|
deviceContextId: _deviceContext?.androidId ?? '',
|
||||||
);
|
);
|
||||||
|
|
||||||
_storage.enqueueEvent(event);
|
_storage.enqueueEvent(event);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue