import 'package:flutter/foundation.dart'; import 'package:permission_handler/permission_handler.dart'; class BeaconPermissions { static Future requestPermissions() async { try { // Request location permission (required for Bluetooth scanning) final locationStatus = await Permission.locationWhenInUse.request(); // Request Bluetooth permissions (Android 12+) final bluetoothScan = await Permission.bluetoothScan.request(); final bluetoothConnect = await Permission.bluetoothConnect.request(); final allGranted = locationStatus.isGranted && bluetoothScan.isGranted && bluetoothConnect.isGranted; if (allGranted) { debugPrint('[BeaconPermissions] ✅ All permissions granted'); } else { debugPrint('[BeaconPermissions] ❌ Permissions denied: ' 'location=$locationStatus, ' 'bluetoothScan=$bluetoothScan, ' 'bluetoothConnect=$bluetoothConnect'); } return allGranted; } catch (e) { debugPrint('[BeaconPermissions] Error requesting permissions: $e'); return false; } } static Future checkPermissions() async { final locationStatus = await Permission.locationWhenInUse.status; final bluetoothScan = await Permission.bluetoothScan.status; final bluetoothConnect = await Permission.bluetoothConnect.status; return locationStatus.isGranted && bluetoothScan.isGranted && bluetoothConnect.isGranted; } static Future openSettings() async { await openAppSettings(); } }