From 2ccf8cac6bc96942fdb45ee6031a465cb2969081 Mon Sep 17 00:00:00 2001 From: sky_min Date: Fri, 7 Nov 2025 15:03:45 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=B8=BF=E8=92=99=E6=89=8B=E6=9C=BA=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E4=B8=8D=E8=83=BD=E5=BB=BA=E7=AB=8B=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E4=BC=98=E5=8C=96=202.=E9=B8=BF=E8=92=99=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=99=84=E8=BF=91=E7=9A=84=E9=94=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_logic.dart | 23 +++++++++++++++++++ .../selectLockType/selectLockType_logic.dart | 19 +++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index 432c2052..91e64e2f 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -1,5 +1,7 @@ import 'dart:async'; +import 'dart:io'; +import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; @@ -790,10 +792,31 @@ class LockDetailLogic extends BaseGetXController { // StartChartManage().lockPeerId = peerId!; // } + // 判断是否为鸿蒙系统 + Future checkIfHarmonyOS() async { + final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + if (Platform.isAndroid) { + final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; + // 检查是否为华为设备且系统版本包含HarmonyOS标识,例如'HUAWEI'开头或特定系统属性等。 + return androidInfo.brand == 'HONOR' || androidInfo.version.sdkInt >= 30; // 注意:具体API可能需要更新以适配最新鸿蒙系统版本。 + } else { + return false; + } + } + /// 发送监控消息 void sendMonitorMessage() async { final catEyeConfig = state.keyInfos.value.lockSetting?.catEyeConfig ?? []; final network = state.keyInfos.value.network; + final bool cameraPermissionGranted = await PermissionDialog.request(Permission.camera); + // 鸿蒙系统 + bool isHarmonyOS = await checkIfHarmonyOS(); + if(isHarmonyOS){ + if (!cameraPermissionGranted) { + showToast('需要相机权限才能进行监控'.tr); + return; + } + } if (catEyeConfig.isNotEmpty && catEyeConfig.length > 0 && catEyeConfig[0].catEyeMode != 0) { if (network == null || network?.peerId == null || network?.peerId == '') { showToast('设备未配网'.tr); diff --git a/lib/mine/addLock/selectLockType/selectLockType_logic.dart b/lib/mine/addLock/selectLockType/selectLockType_logic.dart index 2f74b71d..971feaaa 100755 --- a/lib/mine/addLock/selectLockType/selectLockType_logic.dart +++ b/lib/mine/addLock/selectLockType/selectLockType_logic.dart @@ -1,10 +1,12 @@ import 'dart:io'; +import 'package:device_info_plus/device_info_plus.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/commonDataManage.dart'; +import 'package:url_launcher/url_launcher.dart'; import '../../../appRouters.dart'; import '../../../network/api_repository.dart'; import '../../../widget/permission/permission_dialog.dart'; @@ -19,11 +21,28 @@ class SelectLockTypeLogic extends BaseGetXController { } } + // 判断是否为鸿蒙系统 + Future checkIfHarmonyOS() async { + final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + if (Platform.isAndroid) { + final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; + // 检查是否为华为设备且系统版本包含HarmonyOS标识,例如'HUAWEI'开头或特定系统属性等。 + return androidInfo.brand == 'HONOR' || androidInfo.version.sdkInt >= 30; // 注意:具体API可能需要更新以适配最新鸿蒙系统版本。 + } else { + return false; + } + } + //跳转到附近的锁页面先判断权限 Future getNearByLimits() async { if (!Platform.isIOS) { final bool locationRequest = await PermissionDialog.request(Permission.location); final bool bluetoothRequest = await PermissionDialog.requestBluetooth(); + bool isHarmonyOS = await checkIfHarmonyOS(); + // 鸿蒙系统 + if(isHarmonyOS){ + Get.snackbar('提示', '如您是鸿蒙系统,请下拉手动开启系统的“位置信息”,否则无法搜索到锁哦'); + } if (!bluetoothRequest || !locationRequest) { return; }