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();
  }
}