requestNotificationPermissions function
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;
}
}