From e15f7a5bc06d49a4155491257bb15988c500ddbb Mon Sep 17 00:00:00 2001 From: duffyduck Date: Tue, 29 Sep 2026 19:12:17 +0200 Subject: [PATCH] =?UTF-8?q?feat(android-agent):=20Fire=20TV=20als=20ARIA-E?= =?UTF-8?q?ndpunkt=20=E2=80=94=20Sprache,=20Overlay,=20Ausgabe-Modus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Stick wird vom gesteuerten Geraet zum Gespraechspartner: - VoiceSession: Mikro -> stt_stream_start/stt_audio_chunk(pcm,16k mono s16le, 6400B)/stt_stream_end (exakt das App-Protokoll, keine Server-Aenderung noetig); Antwort via chat(sender=aria) + audio_pcm(base64, 24k) in AudioTrack. AEC/NS an. TURN-OWNERSHIP: der RVS broadcastet an alle — es wird nur ausgegeben, was aus der EIGENEN Frage entstand (audioRequestId -> messageId), sonst reden Handy und Stick gleichzeitig. - OverlayView: TYPE_APPLICATION_OVERLAY, Einblendung ueber dem laufenden Bild (Text + optional Bild), nicht fokussierbar (Fernbedienung bleibt frei). - Speaker: ARIAs echte Stimme (fertiges Audio) bevorzugt, Geraete-TTS als Fallback, Lautstaerke-Steuerung. - Neue Aktionen: notify (Einblendung/Sprache, mode ueberschreibbar), speak, volume, listen/listen_stop. - Einstellung replyMode (overlay|speech) in der App, pro Anfrage ueberschreibbar. - Sprech-Taste in der UI (Fire TV: OK-Taste) + Mikro-/Overlay-Berechtigungen. Version 0.0.1.0. Co-Authored-By: Claude Opus 4.8 --- host-agent/android/app/build.gradle | 4 +- .../android/app/src/main/AndroidManifest.xml | 7 + .../de/hackersoft/ariaagent/AgentConfig.kt | 5 + .../de/hackersoft/ariaagent/AgentService.kt | 9 + .../de/hackersoft/ariaagent/MainActivity.kt | 35 +++ .../de/hackersoft/ariaagent/OverlayView.kt | 139 +++++++++ .../java/de/hackersoft/ariaagent/RvsClient.kt | 98 +++++- .../java/de/hackersoft/ariaagent/Speaker.kt | 76 +++++ .../de/hackersoft/ariaagent/VoiceSession.kt | 280 ++++++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 51 ++++ 10 files changed, 699 insertions(+), 5 deletions(-) create mode 100644 host-agent/android/app/src/main/java/de/hackersoft/ariaagent/OverlayView.kt create mode 100644 host-agent/android/app/src/main/java/de/hackersoft/ariaagent/Speaker.kt create mode 100644 host-agent/android/app/src/main/java/de/hackersoft/ariaagent/VoiceSession.kt diff --git a/host-agent/android/app/build.gradle b/host-agent/android/app/build.gradle index e25fbee..efef451 100644 --- a/host-agent/android/app/build.gradle +++ b/host-agent/android/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId 'de.hackersoft.ariaagent' minSdk 26 targetSdk 33 // 33 vermeidet die Foreground-Service-Typ-Pflicht von 34 - versionCode 8 - versionName '0.0.0.8' + versionCode 10 + versionName '0.0.1.0' } // Fester Signaturschlüssel: jeder Build signiert mit DEMSELBEN Key, damit diff --git a/host-agent/android/app/src/main/AndroidManifest.xml b/host-agent/android/app/src/main/AndroidManifest.xml index 6a206dc..a32d57c 100644 --- a/host-agent/android/app/src/main/AndroidManifest.xml +++ b/host-agent/android/app/src/main/AndroidManifest.xml @@ -11,6 +11,13 @@ + + + + + +