>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Kotlin

So verwandeln Sie ein staubiges Tablet in ein vollwertiges Android-Auto-Display

Haben Sie ein altes Android-5- oder -7-Tablet herumliegen, das keine modernen Google-Play-Apps mehr ausführen kann? Sie können sich nicht dazu durchringen, es wegzuwerfen, aber es gibt keinen Ort, an dem Sie es verwenden könnten. Es scheint logisch, es als Navigator auf dem Armaturenbrett zu montieren. Aber Apps auf dem Tablet-Bildschirm zu betreiben ist nicht immer praktisch: Telefonnachrichten erscheinen nicht, Anrufe werden nicht übertragen, und Sie müssen Wegpunkte während der Fahrt erneut eingeben.

Sie könnten eine chinesische Headunit für 300–500 $ kaufen. Allerdings ist die Hardware oft fragwürdig und die Firmware friert alle drei Tage ein. Das Open Headunit-Repository bietet eine andere Lösung. Es ist ein Open-Source-Android-Auto-Empfänger-Emulator, der praktisch jedes Android-Gerät in ein Auto-Display verwandelt.

Headunit Logo

Warum ein altes Projekt wiederbeleben

Das ursprüngliche Headunit-Projekt wurde einst vom Entwickler Michael Reed geschrieben. Im Laufe der Zeit stellte der Autor die Aktualisierung der Codebasis ein, während Google ständig die Kommunikationsprotokolle in Android Auto änderte. Andre Knirim übernahm das Projekt, schrieb einen erheblichen Teil der Logik in Kotlin um und erstellte Open Headunit.

Die Hauptaufgabe der App ist es, den Datenstrom vom Smartphone zu empfangen, Video zu dekodieren und Touchscreen- sowie Lenkradtastensignale zurückzusenden. Wichtig ist, dass Sie den Emulator sogar auf Geräten mit Android 4.1 ausführen können.

Open Headunit Screenshot

Verbindungsmethoden und Protokoll-Fallstricke

Sie können Ihr Telefon über Kabel oder drahtlos mit dem Emulator verbinden. Aber hier beginnen die Feinheiten, weshalb das Projekt regelmäßig neue Commits erhält.

Kabelgebundene USB-Verbindung

Die zuverlässigste Option. Das Kabel streamt Video ohne Verzögerungen und lädt gleichzeitig das Smartphone auf.

Damit es funktioniert, benötigen Sie USB Host (OTG)-Unterstützung auf dem Tablet. In den Open Headunit-Einstellungen können Sie den standardmäßigen Android-USB-Stack oder die libusb-Bibliothek wählen. Die zweite Option ist bei bestimmten chinesischen Allwinner- und MediaTek-Chipsets nützlich, wo das standardmäßige Android-USB-Subsystem USB-Geräte bei der kleinsten Störung deaktiviert.

Drahtloser Modus und Googles Tricks

Google aktualisiert Android Auto alle sechs Monate konsequent und unterbricht inoffizielle Methoden der Videoübertragung über WLAN. Zum Beispiel haben Entwickler in der Android-Auto-Version 17.4 das Verbindungsschema erneut überarbeitet und Drittanbieter-Tools für kabellose Verbindungen beeinträchtigt.

Derzeit implementiert das Projekt mehrere drahtlose Verbindungsoptionen:

  • Wireless Helper: eine separate Begleit-App für das Smartphone. Sie übernimmt das automatische Starten des Hotspots, die Suche nach dem Headunit-Server im lokalen Netzwerk und startet das Streaming ohne zusätzliche Klicks.
  • Wi-Fi Direct (P2P): direkte Verbindung zwischen zwei Geräten ohne externes WLAN-Netzwerk oder mobilen Hotspot.
  • Nativer Modus: emuliert die Standardverbindung über Bluetooth-Handshake. Funktioniert nicht überall, da wenige Tablets die erforderlichen Bluetooth-Profile gleichzeitig korrekt verarbeiten können.

Sie können eine drahtlose Verbindung direkt aus Automatisierungsskripten starten. Wenn Sie Tasker oder MacroDroid verwenden, können Sie mit einem einzigen Intent einen Befehl zum Verbinden mit einer bestimmten IP-Adresse senden:

adb shell am start -a android.intent.action.VIEW -d "headunit://connect?ip=192.168.1.25"

Open Headunit Screenshot

Unter der Haube

Das Projekt ist in Kotlin geschrieben, aber es steckt viel low-level Hardwarearbeit dahinter.

Erstens, die Videodekodierung. Standardmäßig versucht das System, Hardware-MediaCodec für H.264 oder H.265 zu verwenden. Wenn der Chipsatz des Tablets H.265 NAL-Pakete falsch verarbeitet (was bei älteren Amazon-Fire-Tablets und Rockchip-Geräten häufig vorkommt), friert das Bild bei der Meldung „Android wird gestartet

Ähnliche Projekte