43 lines
1.2 KiB
Dart
43 lines
1.2 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:device_info_plus/device_info_plus.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
|
|
class SCPermissionUtils {
|
|
static Future<bool> checkMicrophonePermission() async {
|
|
// 检查当前权限状态
|
|
var status = await Permission.microphone.status;
|
|
if (status.isDenied) {
|
|
// 请求权限(弹出系统弹窗)
|
|
status = await Permission.microphone.request();
|
|
}
|
|
return status.isGranted;
|
|
}
|
|
|
|
static Future<bool> checkPhotosPermission() async {
|
|
// 检查当前权限状态
|
|
var status = await Permission.photos.status;
|
|
if (status.isDenied) {
|
|
// 请求权限(弹出系统弹窗)
|
|
status = await Permission.photos.request();
|
|
}
|
|
return status.isGranted;
|
|
}
|
|
|
|
static Future<bool> checkAudioPermission() async {
|
|
if (!Platform.isAndroid) {
|
|
return true;
|
|
}
|
|
final androidInfo = await DeviceInfoPlugin().androidInfo;
|
|
final permission =
|
|
androidInfo.version.sdkInt >= 33
|
|
? Permission.audio
|
|
: Permission.storage;
|
|
var status = await permission.status;
|
|
if (status.isDenied || status.isRestricted || status.isLimited) {
|
|
status = await permission.request();
|
|
}
|
|
return status.isGranted;
|
|
}
|
|
}
|