diff --git a/frontend/mobile-app/lib/core/telemetry/models/telemetry_config.dart b/frontend/mobile-app/lib/core/telemetry/models/telemetry_config.dart index 719c4ded..06cd6de1 100644 --- a/frontend/mobile-app/lib/core/telemetry/models/telemetry_config.dart +++ b/frontend/mobile-app/lib/core/telemetry/models/telemetry_config.dart @@ -40,10 +40,11 @@ class TelemetryConfig { Future syncFromRemote(String apiBaseUrl) async { try { final dio = Dio(BaseOptions( - connectTimeout: const Duration(seconds: 10), - receiveTimeout: const Duration(seconds: 10), + connectTimeout: const Duration(seconds: 5), + receiveTimeout: const Duration(seconds: 5), )); - final response = await dio.get('$apiBaseUrl/api/telemetry/config'); + // apiBaseUrl 已经包含 /api/v1,所以这里只需要添加相对路径 + final response = await dio.get('$apiBaseUrl/telemetry/config'); final data = response.data; globalEnabled = data['global_enabled'] ?? true; diff --git a/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart b/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart index a4626c26..419c0a39 100644 --- a/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart +++ b/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart @@ -71,8 +71,11 @@ class TelemetryService { // 3. 加载用户选择 await TelemetryConfig().loadUserOptIn(); - // 4. 同步远程配置(首次) - await TelemetryConfig().syncFromRemote(apiBaseUrl); + // 4. 同步远程配置(非阻塞,后台执行) + // 不阻塞启动流程,使用本地缓存的配置先启动 + TelemetryConfig().syncFromRemote(apiBaseUrl).catchError((e) { + debugPrint('📊 [Telemetry] Remote config sync failed (non-blocking): $e'); + }); // 5. 收集设备信息 _deviceContext = await DeviceInfoCollector().collect(context);