From 71d91e4cdb59b9b244f7f9bdea77c20c359c799a Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Wed, 3 Sep 2025 15:23:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(translation):=20=E5=9C=A8Android=2011+?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=B7=B3=E8=BF=87=E5=AD=98=E5=82=A8=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加设备信息检查以确定Android版本,在Android 11及以上版本中不再请求存储权限,因为这些版本使用分区存储机制 --- .../controllers/translation_controller.dart | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/modules/translation/controllers/translation_controller.dart b/lib/modules/translation/controllers/translation_controller.dart index 429f9db96..97d54cb09 100644 --- a/lib/modules/translation/controllers/translation_controller.dart +++ b/lib/modules/translation/controllers/translation_controller.dart @@ -8,6 +8,7 @@ import 'package:get_storage/get_storage.dart'; import 'package:intl/intl.dart'; import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'package:device_info_plus/device_info_plus.dart'; import '../../../data/services/ast_service.dart'; import '../../../data/services/bluetooth_manager.dart'; import '../../../data/services/music_manager.dart'; @@ -337,6 +338,24 @@ class TranslationController extends GetxController with WidgetsBindingObserver { /// 请求存储权限 /// 返回是否授权成功 Future _requestStoragePermission() async { + // 只在Android 10及以下版本请求存储权限 + if (Platform.isAndroid) { + try { + final deviceInfo = DeviceInfoPlugin(); + final androidInfo = await deviceInfo.androidInfo; + final sdkVersion = androidInfo.version.sdkInt; + + // Android 11+ (API 30+) 不需要存储权限 + if (sdkVersion >= 30) { + Logger.d("Permission", "Android 11+版本,无需请求存储权限"); + return true; // 直接返回true,表示可以使用存储 + } + } catch (e) { + Logger.e("Permission", "获取Android版本信息失败: $e"); + // 如果获取版本失败,为了兼容性还是请求权限 + } + } + try { final bool granted = await PermissionUtil.instance.requestPermission( permissionType: Permission.storage,