|
|
|
@ -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<bool> _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, |
|
|
|
|