requestBluetoothPermissions method
Future<void>
requestBluetoothPermissions(
)
Implementation
Future<void> requestBluetoothPermissions() async {
if (!Platform.isAndroid) return;
// Android 12 (API 31) ke atas wajib pakai permission khusus
if (Platform.isAndroid) {
final bluetoothConnectStatus = await Permission.bluetoothConnect.status;
if (!bluetoothConnectStatus.isGranted) {
await Permission.bluetoothConnect.request();
}
final bluetoothScanStatus = await Permission.bluetoothScan.status;
if (!bluetoothScanStatus.isGranted) {
await Permission.bluetoothScan.request();
}
} else {
// Android < 12 tetap perlu Location untuk BLE scanning
final locationStatus = await Permission.location.status;
if (!locationStatus.isGranted) {
await Permission.location.request();
}
}
// Optional: cek apakah ditolak permanen
if (await Permission.bluetoothConnect.isPermanentlyDenied ||
await Permission.bluetoothScan.isPermanentlyDenied ||
await Permission.location.isPermanentlyDenied) {
// Arahkan user ke Settings
await openAppSettings();
}
}