Files
Melo/lib/library/permissions.dart
T

22 lines
884 B
Dart

import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:permission_handler/permission_handler.dart';
/// Fragt die zum Lesen der Musik nötige Berechtigung an und meldet, ob erteilt.
/// - Android 13+ (API 33): READ_MEDIA_AUDIO
/// - Android < 13: READ_EXTERNAL_STORAGE
/// - iOS / Desktop: kein Laufzeit-Grant nötig (Sandbox bzw. vom Nutzer gewählte
/// Ordner sind bereits freigegeben).
Future<bool> ensureAudioPermission() async {
if (!Platform.isAndroid) return true;
final info = await DeviceInfoPlugin().androidInfo;
final permission =
info.version.sdkInt >= 33 ? Permission.audio : Permission.storage;
final status = await permission.request();
return status.isGranted;
}
/// Öffnet die System-Einstellungen der App (für dauerhaft verweigerte Rechte).
Future<void> openMusicPermissionSettings() => openAppSettings();