arePermissionsGranted static method
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;
}