arePermissionsGranted static method

Future<bool> arePermissionsGranted()

Checks if all required permissions are currently granted without prompting the user.

Implementation

static Future<bool> arePermissionsGranted() async {
  if (!_isAndroid) {
    return (await Permission.bluetooth.status).isGranted;
  }

  final int? sdkInt = await getAndroidSdkVersion();

  if (sdkInt != null && sdkInt < 31) {
    // Android 10-11: Location is strictly required for discovery
    final locationStatus = await Permission.locationWhenInUse.status;
    return locationStatus.isGranted;
  }

  // Android 12+: Scan & Connect are strictly required
  final scanStatus = await Permission.bluetoothScan.status;
  final connectStatus = await Permission.bluetoothConnect.status;
  return scanStatus.isGranted && connectStatus.isGranted;
}