SkillAgentSearch skills...

OpenRadioFM

OpenRadioFM (Mt8163, K706, MTK8259, QS NWD)

Install / Use

/learn @kapi21/OpenRadioFM
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

OpenRadioFM - Community Logo Edition 📻

Version Branch

License Platform Hardware

Aplicación de radio FM premium para Android Head Units, con soporte activo para K706, MT8163 (Junsun V1 Pro) y las plataformas MTK 8227L / 8259 / 8667.
Interfaz Glassmorphism, RDS completo (PS, RT, PTY, AF, TA, TP), y personalización avanzada de logos y temas.

<div align="center"> <img src="docs/img/app_icon.png" width="150" alt="OpenRadioFM Logo"> <br> <p align="center"><b>【 GALERÍA DE CAPTURAS 】</b></p> <img src="docs/img/screenshot1.png" width="45%" alt="Layout V2 (v4.7)"> <img src="docs/img/screenshot2.png" width="45%" alt="Layout V3 (v4.7)"> <br><br> <p align="center"><b>【 NUEVO LAYOUT V3 - Stability Beta 5.0 】</b></p> <img src="docs/img/v18_layout1.png" width="45%" alt="Simple Layout Night Mode"> <img src="docs/img/v18_layout2.png" width="45%" alt="Standard Layout Premium"> <br><br> <p align="center"><b>【 PRESENTACIÓN V5 - ESTABILIDAD BETA 】</b></p> <img src="docs/img/v5 español.png" width="90%" alt="Presentación V5"> <br><br> <p align="center"><b>【 GUÍA DEL SISTEMA DE LOGOS V5 】</b></p> <img src="docs/img/Instrucciones logos español v5.png" width="90%" alt="Guía de Logos V5"> </div>

🎯 Funciones Principales

| Función | MT8163 / Junsun | K706 | MTK8259/8667 | |---|:---:|:---:|:---:| | Sintonización FM | ✅ | ✅ | ✅ | | Seek / AutoScan | ✅ | ✅ | ✅ | | RDS PS (nombre) | ✅ | ✅ | ✅ | | RDS RT (información) | ✅ | ✅ | ✅ | | AF / TA / TP | ✅ | ✅ | ✅ | | DX / Local | ✅ | ✅ | ✅ | | Stereo / Mono | ✅ | ✅ | ✅ | | Layouts (V2 / V3) | ✅ | ✅ | ✅ | | Temas / Night Mode | ✅ | ✅ | ✅ | | Logos HD (Supabase) | ✅ | ✅ | ✅ | | Soporte Android Auto | ✅ | ✅ | ✅ | | Streaming Online | ✅ | ✅ | ✅ |

5.0.16 (abril 2026, hotfix): estabilidad de streaming en MT8163 (liberación de ExoPlayer coordinada), logos en V3/QS6 sin quedarse “pegados”, volante en segundo plano también en QS6, metadatos/notificaciones más coherentes (sin notify() si no hay permiso), getStationInfo desde UI en segundo plano, recordatorio HiHack tras reinicio. Pendiente validar en hardware real K706 y MT8163.

Unreleased (WIP): mejoras del widget (logo dinámico, banda, seek/mute, UX para launchers sin resize), backups de estado (opciones o copia completa con RadioLogos/), y icono launcher estilo OEM con drawable-nodpi-v4 para evitar pixelado en QS6/NWD. Ver CHANGELOG.md.


🏗️ Arquitectura

graph TB
    subgraph "UI Layer"
        MA[MainActivity]
        LCN[Layout Controllers]
        STM[Standard/V3 Layouts]
        SLM[Simple Layout]
    end

    subgraph "Domain Managers"
        PM[PlaybackManager]
        SM[ScanManager]
        HM[HistoryManager]
        PRM[PresetManager]
        RDS[RDSManager]
    end

    subgraph "System & UI Logic"
        TM[ThemeManager]
        NM[NightModeManager]
        LM[LogoManager]
        DM[DialogManager]
    end

    subgraph "Hardware Abstraction"
        RSC[RadioServiceController]
        REI[RadioEngine Interface]
        DEV[DeviceManager]
        HWM[HardwareManager]
    end

    subgraph "Radio Engines"
        K706[K706Engine]
        MT[MT8163Engine]
        QS[QS6Engine]
        MTK[MTK8259_8667Engine]
    end

    MA --> LCN
    LCN --> STM
    LCN --> SLM
    MA --> PM
    MA --> SM
    MA --> HM
    PM --> RSC
    RSC --> REI
    REI --> K706
    REI --> MT
    REI --> QS
    REI --> MTK
    
    style MA fill:#1a1a2e,stroke:#e94560,color:#fff
    style PM fill:#16213e,stroke:#0f3460,color:#fff
    style RSC fill:#16213e,stroke:#0f3460,color:#fff

📱 Hardware Compatible

| Dispositivo | Chip | Motor | Colaborador | |---|---|---|---| | JUNSUN V1 Pro / Topway | MediaTek MT8163 | FM_MT8163 | ✅ | | Radio K706 / HCN / Vento | K706 + MCU | FM_K706 | ✅ | | MTK 8227L / 8259 / 8667 | MediaTek | FM_MT8259 | 🤝 Csaba Edition | | Radio NWD G5 | Qualcomm | FM_QS6 | 🛠️ Beta (rama QS_NWD) | | Otros Android Head Units | Varía | FM_BASICO | ⚠️ Solo UI |


🛠️ Compilación

Requisitos

  • Android Studio Hedgehog+ o SDK 34
  • JDK 17
  • Gradle 9.x (incluido en wrapper)

Supabase (obligatorio para compilar)

Desde v5.0.15, la URL y la clave anon de Supabase no van en el código: añádelas a local.properties en la raíz (junto a sdk.dir) o exporta SUPABASE_URL y SUPABASE_ANON_KEY. Plantilla: local.properties.example. Guía CI: docs/CI_SUPABASE.md.

Build

# Clonar
git clone https://github.com/kapi21/OpenRadioFM.git
cd OpenRadioFM

# Compilar
./gradlew assembleDebug

# APK generado en:
# app/build/outputs/apk/debug/app-debug.apk

Instalación en Head Unit

adb install -r app/build/outputs/apk/debug/app-debug.apk

⚠️ Problemas Conocidos (Abril 2026)

  • Verificación v5.0.16: los cambios de la 5.0.16 aún deben probarse en K706 y MT8163 en condiciones reales (streaming, volante, logos, notificaciones).
  • Audio Focus (K706): ✅ Resuelto. Centralización de foco en RadioManager para evitar cortes por conmutación de canal MCU (Channel 2/4).
  • Volante en segundo plano (K706): En muchas ROM, con el launcher u otra app al frente, las teclas del volante llegan como KeyEvent al foco y la radio OEM sigue recibiendo mandos por MCU/QuickFish. OpenRadioFM no puede usar ese canal sin integración OEM; a partir de v5.0.10 el servicio de accesibilidad Factory Radio Hijacker puede capturar y reenviar esas teclas a la app (activar el servicio en Ajustes → Accesibilidad). Opcional (avanzado): en SharedPreferences RadioPresets, pref_a11y_forward_media_keys=false desactiva el reenvío (por defecto está activo).
  • Seek por Hardware (K706): Interactúa con el volumen en algunos firmwares (pendiente investigación MCU).
  • Layout V2: Algunos iconos pueden tener áreas de pulsación solapadas.
  • AutoScan (Smart v2): ⏸️ En estudio por defecto. Desde v5.0.11, en los menús de ingeniería (pulsación larga en GPS) puedes activar Modo AutoScan para usar el botón de escaneo en la UI principal de forma experimental (pref_dev_autoscan_enabled en RadioPresets).
  • Audio QS6 (Qualcomm / NWD): ⚠️ Comportamiento dependiente del firmware; se sigue probando cambio de fuente (ACTION_CHANGE_SOURCE), foco y rutas de recuperación. Reporta modelo + build si falla el audio tras sintonizar.

📖 Documentación


🤝 Cómo Contribuir

  • Issues: Si encuentras un bug o comportamiento raro en tu radio (modelo, firmware, chip, versión de app), abre un Issue detallando:
    • Modelo exacto de la head unit (HCN, K706, QS6, MTK8259, etc.).
    • Versión de OpenRadioFM (por ejemplo v4.9.3_Stable).
    • Pasos para reproducir el problema y, si es posible, logs o fotos/vídeos.
  • Pull Requests: Se aceptan mejoras de código, refactors y nuevas traducciones:
    • Intenta mantener el estilo actual (Java para el core; Kotlin bienvenido para piezas nuevas).
    • Acompaña los cambios con una breve explicación en el PR y, si afecta a la UX, con capturas.
    • Para cambios grandes (refactor de motores, arquitectura, etc.), es recomendable comentar primero en un Issue para alinear el enfoque.

📜 Historial de Versiones

v5.0.16 (Abril 2026) — main — hotfix

  • ES: OpenRadioFM v5.0.16 — hotfix: streaming MT8163, logos V3/QS6, volante QS6 en segundo plano, MediaSession/notificaciones, RadioRepository en UI, HiHack tras reinicio. Pendiente verificación en K706 y MT8163. Ver CHANGELOG.md.
  • EN: OpenRadioFM v5.0.16 — hotfix: MT8163 streaming, V3/QS6 logos, QS6 background steering, MediaSession/notifications, UI-thread getStationInfo, HiHack reboot reminder. K706 + MT8163 verification still pending. See CHANGELOG_EN.md.

v5.0.15 (Abril 2026) — main

  • ES: OpenRadioFM v5.0.15 — cierre de línea 5.0.15: widget, AutoScan/i18n/diálogos (ver CHANGELOG.md); contribución Supabase más estricta; credenciales Supabase en compilación (local.properties); layout V2 presets.
  • EN: OpenRadioFM v5.0.15 — release notes: widget, AutoScan/i18n/dialogs (see CHANGELOG_EN.md); stricter Supabase community contribution; build-time Supabase credentials; V2 preset column spacing.

v5.0.14 Beta (Marzo 2026) — main

  • ES: OpenRadioFM v5.0.14 Beta — indicador de banda (FM1/FM2/FM3/AM1/AM2) y unidad (MHz/kHz) como texto para respetar la tipografía elegida; selector “🔢 Números presets” con estilo por defecto o Tabler (assets). Detalle en CHANGELOG.md.
  • EN: OpenRadioFM v5.0.14 Beta — band indicator (FM1/FM2/FM3/AM1/AM2) and unit (MHz/kHz) rendered as text to respect the selected font; “🔢 Preset numbers” selector with Default or Tabler style (assets). See CHANGELOG_EN.md.

v5.0.12 Beta (Marzo 2026) — main

  • ES:
View on GitHub
GitHub Stars6
CategoryDevelopment
Updated2h ago
Forks0

Languages

Java

Security Score

85/100

Audited on Apr 6, 2026

No findings