|
|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 添加方法:获取音频时长 |
|
|
|
|