Files
Folder-Redirect-app/README.md
T

3.7 KiB

Folder Redirect App

Aplicación Android para redireccionar archivos entre carpetas automáticamente.

Características

  • ✅ Agregar reglas de redirección (carpeta origen → carpeta destino)
  • ✅ Editar reglas existentes
  • ✅ Eliminar reglas
  • ✅ Activar/desactivar reglas individualmente
  • ✅ Filtro por tipo de archivo (Documentos, Imágenes, Videos)
  • ✅ Filtro por patrón de nombre (ej: RDT*, invoice_*, *.pdf)
  • ✅ Solución híbrida de batería: Polling rápido cuando la app está abierta + WorkManager en segundo plano
  • ✅ Servicio en segundo plano que monitorea las carpetas
  • ✅ Mueve archivos automáticamente cuando llegan a la carpeta de origen
  • ✅ Manejo de nombres duplicados (agrega timestamp)

Requisitos

  • Android 7.0 (API 24) o superior
  • Permisos de almacenamiento

Permisos

La app solicita los siguientes permisos:

  • READ_EXTERNAL_STORAGE - Leer archivos de la carpeta de origen
  • WRITE_EXTERNAL_STORAGE - Escribir archivos en la carpeta de destino
  • MANAGE_EXTERNAL_STORAGE - Acceso completo al almacenamiento (Android 11+)
  • FOREGROUND_SERVICE - Ejecutar servicio en segundo plano

Cómo usar

  1. Abrir la app - Al iniciar, solicita permisos de almacenamiento

  2. Agregar regla:

    • Presiona el botón flotante +
    • Ingresa la ruta absoluta de la carpeta de origen (ej: /storage/emulated/0/Download)
    • Ingresa la ruta absoluta de la carpeta de destino (ej: /storage/emulated/0/MisDocumentos)
    • Presiona "Guardar"
  3. Iniciar servicio:

    • Presiona el botón "Iniciar Servicio"
    • El servicio se ejecutará en segundo plano monitoreando las carpetas
  4. Gestionar reglas:

    • Usa el switch para activar/desactivar reglas individualmente
    • Presiona el ícono de editar para modificar una regla
    • Presiona el ícono de eliminar para borrar una regla

Notas Importantes

  • Las carpetas de origen y destino deben existir antes de crear la regla
  • El servicio se detiene al cerrar la app (presionar "Detener Servicio")
  • Los archivos con nombres duplicados reciben un timestamp para evitar sobrescritura
  • Solo se monitorean archivos nuevos, no subcarpetas

Estructura del Proyecto

app/src/main/java/com/folderredirect/app/
├── MainActivity.kt          # Actividad principal
├── FolderRule.kt            # Modelo de datos
├── FolderRuleAdapter.kt     # Adapter para RecyclerView
├── FolderMonitorService.kt  # Servicio de monitoreo
└── RulesManager.kt          # Gestión de almacenamiento de reglas

app/src/main/res/layout/
├── activity_main.xml        # Layout principal
├── item_folder_rule.xml     # Item de la lista
└── dialog_rule.xml          # Diálogo para agregar/editar

Compilación

# Abrir en Android Studio o compilar desde terminal
./gradlew assembleDebug

# El APK se generará en:
# app/build/outputs/apk/debug/app-debug.apk

Tecnologías

  • Kotlin
  • Androidx
  • Material Design 3 (Dynamic Colors)
  • RecyclerView
  • Foreground Service
  • WorkManager (segundo plano eficiente)
  • WatchService (Java NIO)
  • Gson (persistencia)

💡 Solución Híbrida de Batería

La app usa un enfoque inteligente para ahorrar batería:

Cuando la app está abierta:

  • ⚡ Polling rápido (10 segundos) - Movimiento casi instantáneo
  • 📱 El servicio en primer plano monitorea constantemente

Cuando la app está cerrada:

  • 🔋 WorkManager (15 minutos) - Bajo consumo
  • 🔄 El sistema ejecuta verificaciones periódicas eficientes
  • 💤 Respeta el modo Doze y ahorro de batería

Ventajas:

  • ✅ Movimiento rápido cuando usas la app
  • ✅ Ahorro de batería cuando está cerrada
  • ✅ Funciona incluso si cierras la app
  • ✅ Android no mata el proceso en segundo plano