requestNotificationPermissions function

Future<bool> requestNotificationPermissions()

Solicita permisos de notificación desde la UI principal Esta función debe llamarse antes de iniciar el background service

Implementation

Future<bool> requestNotificationPermissions() async {
  try {
    final deviceInfo = DeviceInfoPlugin();
    final androidInfo = await deviceInfo.androidInfo;

    // Solo solicitar permiso en Android 13+ (SDK 33+)
    if (androidInfo.version.sdkInt >= 33) {
      final status = await Permission.notification.status;

      // Si ya está concedido, retornar true
      if (status.isGranted) {
        return true;
      }

      // Si está denegado, solicitar permiso
      if (status.isDenied) {
        final newStatus = await Permission.notification.request();
        return newStatus.isGranted;
      }

      // Si está permanentemente denegado, retornar false
      if (status.isPermanentlyDenied) {
        return false;
      }
    }

    return true; // En versiones anteriores, el permiso ya está concedido
  } catch (e) {
    print('⚠️ Error solicitando permisos de notificación: $e');
    return false;
  }
}