diff --git a/lib/modules/translation/controllers/translation_list_controller.dart b/lib/modules/translation/controllers/translation_list_controller.dart index 45181b869..55539706c 100644 --- a/lib/modules/translation/controllers/translation_list_controller.dart +++ b/lib/modules/translation/controllers/translation_list_controller.dart @@ -1,5 +1,6 @@ import 'dart:io'; import 'package:audio_waveforms/audio_waveforms.dart'; +import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:get/get.dart'; import 'package:just_audio/just_audio.dart'; @@ -93,24 +94,43 @@ class TranslationListController extends GetxController { // 请求存储权限 void _requestStoragePermission() async { - // final BuildContext context = Get.overlayContext!; - - PermissionUtil.instance - .requestPermission( - // context: context, - permissionType: Permission.storage, - permissionName: "存储", - explanationText: "我们需要访问存储权限,以便您可以选择并上传音频文件。", - permanentDenialText: "检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。", - ) - .then((granted) { + // 只在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, + permissionName: 'storagePermission'.tr, + explanationText: 'storagePermissionExplanation'.tr, + permanentDenialText: 'storagePermissionPermanentDenial'.tr, + ); + if (granted) { Logger.d("Permission", "用户授予了存储权限"); + //return true; } else { Logger.d("Permission", "用户未授予存储权限"); - // 可以提示用户无法进行文件操作 + //return false; } - }); + } catch (e) { + Logger.e("Permission", "请求存储权限时出错: $e"); + //return false; + } } // 添加方法:获取音频时长