ua1zbe 805aaa2411 Fix Opus RX decoding, add foreground service, last-talker display
- Decode received Opus audio: handle svxlink self-delimited framing and
  provide monotonic PTS (c2.opus.decoder discards output when PTS == 0)
- Keep connection and playback alive in background via SvxService
  (foreground service, media playback type)
- Keep screen on while app is open
- Show last talker callsign persistently instead of clearing after 4s
- Bump versionCode to 2, disable lint on release builds
2026-08-13 16:23:41 +03:00

SVXHomyak

Android-клиент для подключения к рефлекторам SVXLink (svxreflector) — слушайте и участвуйте в групповых переговорах (TG) прямо со смартфона.

Возможности

  • Подключение к рефлектору SVXLink по протоколу v2 с авторизацией по AUTH_KEY
  • Выбор группы вещания (TG) — по умолчанию 11
  • Голосовая связь в формате Opus (8 кГц, моно) через UDP
  • Кнопка PTT (Push-To-Talk) — удерживайте, чтобы говорить
  • Индикаторы уровня передачи и приёма
  • Отображение текущего говорящего
  • Автоматическое переподключение при обрыве связи
  • Позывной регистронезависимый: ua1zbe-m автоматически преобразуется в UA1ZBE-M для отправки на сервер

Требования

  • Android 8.0 (API 26) и выше
  • Доступ к сети и микрофону
  • Рефлектор SVXLink с включённой поддержкой протокола v2 (AUTH_KEY)

Установка

Скачайте последний APK со страницы Releases и установите его на устройство (разрешите установку из неизвестных источников).

Использование

  1. Откройте Настройки (иконка шестерёнки).
  2. Укажите:
    • Сервер — адрес рефлектора (хост или IP)
    • Порт — по умолчанию 5300
    • Позывной — ваш позывной, например UA1ZBE-M
    • Пароль (AUTH_KEY) — ключ доступа к рефлектору
    • Группа вещания (TG) — номер группы
  3. Нажмите Сохранить, затем Подключиться.
  4. Для передачи удерживайте кнопку PTT.

Сборка из исходников

./gradlew :app:assembleDebug

APK появится в app/build/outputs/apk/debug/app-debug.apk.

Требования: JDK 17, Android SDK (compileSdk 34).

Структура проекта

  • app/src/main/java/ru/ua1zbe/svxremote/MainActivity.kt — основной экран
  • app/src/main/java/ru/ua1zbe/svxremote/SettingsActivity.kt — настройки подключения
  • app/src/main/java/ru/ua1zbe/svxremote/proto/ReflectorClient.kt — клиент рефлектора (TCP + UDP)
  • app/src/main/java/ru/ua1zbe/svxremote/proto/ReflectorProtocol.kt — бинарный протокол svxreflector v2
  • app/src/main/java/ru/ua1zbe/svxremote/audio/OpusEngine.kt — кодирование/декодирование Opus через MediaCodec
  • app/src/main/java/ru/ua1zbe/svxremote/ui/ — кнопка PTT и индикатор уровня
  • app/src/test/java/ru/ua1zbe/svxremote/ — юнит-тесты протокола и рукопожатия

Тесты

./gradlew :app:testDebugUnitTest

Лицензия

Проект распространяется без ограничений (для радиолюбительских целей).

Description
SVXHomyak — Android-клиент для рефлекторов SVXLink (svxreflector v2, Opus, PTT)
Readme 262 KiB
v1.0.4 Latest
2026-08-14 10:52:54 +00:00
Languages
Kotlin 100%