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 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 openMusicPermissionSettings() => openAppSettings();