Browse Source

fix(登录/配对): 优化渠道和设备判断逻辑

调整登录控制器的隐私政策检查逻辑,仅对非华为/荣耀渠道生效
在配对控制器中增加华为渠道判断,并优化权限检查流程
weicu
lxm 10 months ago
parent
commit
b30f604789
  1. 19
      lib/modules/login/controllers/login_controller.dart
  2. 10
      lib/modules/pairing/controllers/pairing_controller.dart

19
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

10
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<bool> _checkPermissions() async {
if (isHuaweiDevice) {
isHuaweiHasChecked = _storage.read('isHuaweiHasChecked') ?? false;
}
//如果是华为设备,且已经检查过,直接返回权限状态
if (isHuaweiDevice && isHuaweiHasChecked) {
final bluetoothScanStatus = await Permission.bluetoothScan.status;

Loading…
Cancel
Save