From b30f60478930381a40f8bb00ad8d93b7b80b5deb Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Thu, 4 Dec 2025 19:23:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95/=E9=85=8D=E5=AF=B9):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B8=A0=E9=81=93=E5=92=8C=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整登录控制器的隐私政策检查逻辑,仅对非华为/荣耀渠道生效 在配对控制器中增加华为渠道判断,并优化权限检查流程 --- .../login/controllers/login_controller.dart | 19 ++++++++++++------- .../controllers/pairing_controller.dart | 10 ++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/lib/modules/login/controllers/login_controller.dart b/lib/modules/login/controllers/login_controller.dart index a568f820c..ff506e4a9 100644 --- a/lib/modules/login/controllers/login_controller.dart +++ b/lib/modules/login/controllers/login_controller.dart @@ -113,19 +113,24 @@ class LoginController extends GetxController { _contactController = TextEditingController(); _verificationCodeController = TextEditingController(); - // 初始化默认国家代码 - _initDefaultCountryCode(); - - _hasAcceptedPrivacy.value = - _storage.read('hasAcceptedPrivacy') ?? false; // 从本地存储中读取是否已接受隐私政策 - _initDeviceInfo(); _initAppInfo(); // 新增:初始化APP信息 _checkGuestLoginConfig(); // 检查游客登录配置 + final channel = versionService.cachedChannel; isChinaMainland.value = Get.deviceLocale?.countryCode?.toUpperCase() == 'CN' && - _userChannel != UserChannel.GLOBAL_GOOGLE; //是否中国大陆地区 + channel != UserChannel.GLOBAL_GOOGLE; //是否中国大陆地区 + + // 初始化默认国家代码 + _initDefaultCountryCode(); + + if (channel != UserChannel.CHINA_HUAWEI && + channel != UserChannel.CHINA_HONOR) { + // 非中国华为和荣耀渠道,检查是否已接受隐私政策 + _hasAcceptedPrivacy.value = + _storage.read('hasAcceptedPrivacy') ?? false; // 从本地存储中读取是否已接受隐私政策 + } } @override diff --git a/lib/modules/pairing/controllers/pairing_controller.dart b/lib/modules/pairing/controllers/pairing_controller.dart index 39ca7fa67..2b63098c6 100644 --- a/lib/modules/pairing/controllers/pairing_controller.dart +++ b/lib/modules/pairing/controllers/pairing_controller.dart @@ -18,6 +18,7 @@ import '../../../data/services/bluetooth_manager.dart'; import '../../../data/services/ble_manager.dart'; import '../../../core/utils/permission_util.dart'; import '../../../data/services/version_update_service.dart'; +import '../../../data/models/channel_app_model.dart'; /// 配对状态枚举 - 简化版本 enum PairingState { @@ -569,15 +570,20 @@ class PairingController extends GetxController with WidgetsBindingObserver { return _bluetoothManager.bluetoothState != 'off'; } - /// 检查是否为华为设备 + /// 检查是否为华为设备或者华为渠道 bool _isHuaweiDevice() { final deviceBrand = versionService.cachedDeviceBrand; + final channel = versionService.cachedChannel; return deviceBrand.isNotEmpty && - (deviceBrand.contains('huawei') || deviceBrand.contains('华为')); + (deviceBrand.contains('huawei') || deviceBrand.contains('华为')) || + (channel == UserChannel.CHINA_HUAWEI); } /// 检查权限 Future _checkPermissions() async { + if (isHuaweiDevice) { + isHuaweiHasChecked = _storage.read('isHuaweiHasChecked') ?? false; + } //如果是华为设备,且已经检查过,直接返回权限状态 if (isHuaweiDevice && isHuaweiHasChecked) { final bluetoothScanStatus = await Permission.bluetoothScan.status;