Skip to content

Commit ce87a33

Browse files
committed
fix(*)
1 parent 322b170 commit ce87a33

1 file changed

Lines changed: 23 additions & 12 deletions

File tree

lib/recorder/pages/recorder/recorder_controller.dart

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:get/get.dart';
66
import 'dart:developer' as developer;
77
import 'package:open_filex/open_filex.dart';
88
import 'package:pure_live/common/index.dart';
9+
import 'package:device_info_plus/device_info_plus.dart';
910
import 'package:pure_live/common/utils/hive_pref_util.dart';
1011
import 'package:pure_live/recorder/ffmpeg/ffmpeg_event.dart';
1112
import 'package:pure_live/recorder/ffmpeg/ffmpeg_types.dart';
@@ -149,20 +150,30 @@ class RecorderController extends GetxService {
149150
Future<bool> requestStoragePermission() async {
150151
if (!Platform.isAndroid) return true;
151152

152-
if (Platform.isAndroid && int.parse(Platform.operatingSystemVersion.split('.')[0]) >= 11) {
153-
// 先检查是否已经授权
154-
if (await Permission.manageExternalStorage.isGranted) {
155-
return true;
156-
}
157-
final status = await Permission.manageExternalStorage.request();
158-
if (status.isGranted) {
159-
return true;
153+
try {
154+
final deviceInfo = DeviceInfoPlugin();
155+
final androidInfo = await deviceInfo.androidInfo;
156+
final sdkInt = androidInfo.version.sdkInt;
157+
if (sdkInt >= 30) {
158+
if (await Permission.manageExternalStorage.isGranted) {
159+
return true;
160+
}
161+
final status = await Permission.manageExternalStorage.request();
162+
if (status.isGranted) {
163+
return true;
164+
}
165+
} else {
166+
if (await Permission.storage.isGranted) {
167+
return true;
168+
}
169+
final status = await Permission.storage.request();
170+
if (status.isGranted) {
171+
return true;
172+
}
160173
}
161-
} else {
174+
} catch (e) {
162175
final status = await Permission.storage.request();
163-
if (status.isGranted) {
164-
return true;
165-
}
176+
if (status.isGranted) return true;
166177
}
167178

168179
ToastUtil.show(i18n('no_storage'));

0 commit comments

Comments
 (0)