requestStoragePermission static method
Future<void>
requestStoragePermission(
)
Implementation
static Future<void> requestStoragePermission() async {
if (Platform.isAndroid) {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
final AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
int sdkVersion = androidInfo.version.sdkInt;
if (sdkVersion >= 33) {
// Android 13+ (API 33+): Request separate media permissions
await Permission.photos.request();
await Permission.videos.request();
await Permission.audio.request();
if (await Permission.photos.isGranted ||
await Permission.videos.isGranted ||
await Permission.audio.isGranted) {
debugPrint("β
Storage permissions granted.");
} else {
debugPrint("β Storage permissions denied.");
}
} else {
var status = await Permission.storage.status;
if (status.isGranted) {
debugPrint("β
Storage permission already granted.");
return;
}
if (status.isDenied) {
debugPrint("π Requesting storage permission...");
status = await Permission.storage.request();
}
if (status.isPermanentlyDenied) {
debugPrint(
"β Storage permission permanently denied. Redirecting to settings.");
openAppSettings(); // Open settings for manual permission
} else if (status.isDenied) {
debugPrint("β Storage permission denied.");
} else {
debugPrint("β
Storage permission granted.");
}
}
} else {
debugPrint("β οΈ handle ios permission request");
}
}