.NET MAUI - Vorstellung der Android-Watch-Anwendung (Teil 1)

.NET MAUI - Vorstellung der Android-Watch-Anwendung (Teil 1)
20/12/2023

Als Softwareentwickler sind wir mit den Anforderungen einer neuen Generation von Nutzern konfrontiert, die nicht mehr nur vor dem Computerbildschirm sitzen, sondern unsere Apps auf mobilen Geräten nutzen und zunehmend auch andere Geräte tragen. Dazu gehören Smart Watches, Kopfhörer und in Zukunft vielleicht auch andere Gerätetypen wie Smart Glasses, persönliche Sensoren etc. Dieser Artikel beschreibt unsere Erfahrungen mit einem solchen Projekt. Wir haben eine plattformübergreifende dotnet MAUI-Anwendung für Android und iOS geschrieben und beschlossen, sie um eine weitere Schnittstelle - Android-Uhren - zu erweitern.

Es gibt eine Menge Dokumentationen und Diskussionen im Internet über das Schreiben von Anwendungen für Wear OS im Allgemeinen. Aus diesem Grund überlasse ich allgemeine Informationen zu diesem Thema den offiziellen Seiten von Google und Microsoft und konzentriere mich in diesem Artikel auf unsere Erfahrungen - wie man .NET MAUI mobile Anwendungen für Wear OS erweitert.

Schritt 0 - Analyse und Vorbereitung

Auch wenn wir eine Wear OS Erweiterung für eine .NET MAUI Anwendung schreiben wollen, werden wir den gleichen Ansatz verwenden, den Microsoft für Xamarin entwickelt hat. Weitere Informationen finden Sie in dieser ausgezeichneten Dokumentation: https://learn.microsoft.com/en-us/xamarin/android/wear/get-started/intro-to-wear

Seit Android Wear 2.0 bereiten Entwickler die Wear OS-Anwendung immer als eigenständiges APK-Paket mit definierter Hardware in der Datei AndroidManifest.xml vor:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
  <uses-feature android:name="android.hardware.type.watch" />
  <application android:allowBackup="true" android:icon="@mipmap/appicon" ... >
   ...
 </application>
</manifest>

Es gibt keine Anforderungen für die AndroidManifest.xml Datei für unsere mobile .NET MAUI Anwendung. Wir können also direkt zum nächsten Schritt übergehen - das Einbinden der Wear OS App in unsere Lösung.

Schritt 1 - Integration eines .NET Android Projekts in die .NET MAUI Lösung

Öffnen Sie Ihre .NET MAUI-Lösung in Visual Studio, klicken Sie mit der rechten Maustaste auf die Lösung und fügen Sie eine neue Android Wear-Anwendung hinzu. Siehe Abbildung 1.

Wenn Sie fertig sind, sollte die Projektstruktur wie in Abbildung 2 aussehen. In unserem Beispiel ist das Projekt Ias.Sabot.Mobile die Haupt-MAUI-Anwendung, die Basisprojekte sind reine .NET-Projekte ohne Abhängigkeit von der zugrunde liegenden Plattform, das Core-Projekt ist die .NET-MAUI-Bibliothek mit plattform- oder MAUI-abhängigem Code und schließlich ist das Projekt Ias.Sabot.Mobile.Watch.Android die .NET-Anwendung für Uhren für Android.

Ähnlich wie bei Xamarin. Bei Android gibt es eine MainActivity.cs, Resources mit Layern, Drawables und Values-Ordner.

Obsah obrázku text, snímek obrazovky, software, čísloPopis byl vytvořen automaticky
Abbildung 1 - Hinzufügen einer neuen Android Wear App zur Lösung
Obsah obrázku text, snímek obrazovky, Písmo, čísloPopis byl vytvořen automaticky
Abbildung 2 - Lösungsstruktur der .NET MAUI App mit Android Wear OS Ergänzung

Es gibt einen Wear OS-spezifischen Bereich in den Ressourcen. Es gibt die Ordner "values" und "values-round". Im ersten Ordner können Sie die Standardzeichenfolgen, Farben und Abmessungen für die UI definieren und im zweiten Ordner können Sie einige davon für abgerundete - kreisförmige - UIs überschreiben. Android Wear OS entscheidet selbst, welche Werte verwendet werden, je nachdem, ob die Uhren eckig oder rund sind (siehe Abbildung 3).

Obsah obrázku hodiny, hodinky, text, ZnačkaPopis byl vytvořen automaticky
Abbildung 3 - Runde und quadratische Formen von Android-basierten Uhren

Schritt 2 - Einrichten der Entwicklungsumgebung

Ausführen einer Anwendung auf einem Wear OS Emulator

Sobald wir eine Android Wear-Anwendung in der Lösung haben, möchten wir sie normalerweise auf einem echten Gerät oder einem Emulator ausführen. Glücklicherweise bietet der Android Device Manager eine Vorlage für einen Emulator für Uhren. Erstellen wir einen Emulator und führen wir die Anwendung zum ersten Mal aus.

Obsah obrázku text, snímek obrazovky, software, Počítačová ikonaPopis byl vytvořen automaticky
Abbildung 4 - Watch-Emulator mit Android Device Manager erstellen

Obsah obrázku text, přístroj, Elektronické zařízení, snímek obrazovkyPopis byl vytvořen automaticky
Abbildung 5 - Android Wear OS Emulator in Betrieb

So verbinden Sie den Wear OS Emulator mit einem physischen Android-Gerät

Das Ausführen der Wear OS-Anwendung auf dem Emulator ist der einfache Teil der Einrichtung der Entwicklungsumgebung. In realen Szenarien müssen Sie jedoch die Anwendung auf dem Emulator mit der mobilen Anwendung auf Ihrem Android-Gerät kommunizieren lassen.

Dies ist unter zwei Bedingungen möglich.  

Der Wear OS Emulator muss auf einem PC/Mac laufen, der mit demselben lokalen Netzwerk verbunden ist wie das mobile Gerät.
Das Mobilgerät muss über USB mit dem PC/Mac verbunden sein.

Folgen Sie dem hier beschriebenen Kopplungsverfahren:
https://developer.android.com/training/wearables/get-started/connect-phone#pair-phone-with-avd

Es gibt ein Tool in Visual Studio, das Sie dafür benötigen - ADB (Android Debug Bridge). Der Forward-Befehl (adb -d forward tcp:5601 tcp:5601) muss dort ausgeführt werden - nicht in der Systemkonsole (siehe Abbildung 6).

Obsah obrázku text, software, Počítačová ikona, Multimediální softwarePopis byl vytvořen automaticky
Abbildung 6 – Android Debug Bridge console

Wie verwendet man eine Wear OS App auf einer echten Uhr?

Nicht alles kann mit dem Wear OS Emulator getestet / simuliert werden. Wenn Sie sich ernsthaft mit der Entwicklung von Android Wear beschäftigen, benötigen Sie echte Android Uhren. Sie können auch die Android Debug Bridge für den Einsatz auf echten Uhren verwenden.

Der Prozess der Verbindung von Visual Studio mit einer realen Uhr kann je nach Hersteller oder Typ der Uhr leicht variieren. Es gibt jedoch einige Voraussetzungen, die für jede Uhr erfüllt sein müssen:

1. Es muss mit dem Betriebssystem Android Wear laufen (kein Tizen, kein Garmin, ...).
2. Es muss über WiFi mit dem gleichen lokalen Netzwerk wie der Entwicklungs-PC/Mac verbunden sein.  
3. Die "Developer Options" müssen aktiviert sein  
4. In den Entwickleroptionen muss "ADB-Debugging" aktiviert sein.
5. Unter den Entwickleroptionen muss "Wireless Debugging" aktiviert sein.

Um die Entwickleroptionen auf den Uhren zu aktivieren
Gehen Sie zu System -> Über die Uhr -> Softwareinformationen und tippen Sie 7x auf "Softwareversion".  

Der genaue Vorgang kann je nach Android-Version und Spracheinstellung variieren. Wenn er abgeschlossen ist, sollten Sie ihn im Menü unter Einstellungen sehen:

Obsah obrázku hodiny, hodinky, popruh, Analogové hodinkyPopis byl vytvořen automaticky
Abbildung 7 - Entwickleroptionen in Android Wear aktiviert

Sobald die Entwickleroptionen für Watches aktiviert sind und ADB-Debugging und Wireless-Debugging ebenfalls aktiviert sind, können Sie die Watches mit dem ADB-Tool zu den Zielgeräten in Visual Studio hinzufügen.

Wie kann ich Watch zu den Zielgeräten in Visual Studio hinzufügen?

Es gibt zwei Möglichkeiten. Unter Android 11, das auf der Samsung Watch 4 läuft, ist es möglich:

1. Öffnen Sie die ADB-Konsole in Visual Studio.
2. Geben Sie adb connect [IP-Adresse der Uhr ohne Portnummer] ein.
3. Geben Sie adb devices ein - Watches sollte in der Liste der verbundenen Android-Geräte sichtbar sein.
4. Dann erscheint Watches in Android Debug Devices

Für die Samsung Watch 4 mit Android 13 fordert das Handbuch die Kopplung des Geräts mit einem Entwickler-PC/Mac:

1. Gehen Sie auf der Uhr zu "Entwickleroptionen" -> "Drahtloses Debugging".
2. Auf "Neues Gerät koppeln" klicken.
3. Auf der Uhr sollte ein Bildschirm wie in Abbildung 8 erscheinen.
4. Öffnen Sie die ADB Konsole in Visual Studio.
5. Geben Sie den Befehl adb pair [ip address]:[port number] mit den Werten der Uhren ein.
6. Geben Sie den auf den Uhren angezeigten Pairing-Code in die Eingabeaufforderung ein.
7. Visual Studio sollte Ihre Uhren als neues Gerät zum Debuggen hinzufügen.

Obsah obrázku text, snímek obrazovkyPopis byl vytvořen automaticky
Abbildung 8 - Kopplung der Uhren mit dem Entwickler PC/Mac zur Fehlersuche über WiFi

Sobald Ihre Watches als lokales Android-Gerät sichtbar sind, wählen Sie in Visual Studio das Projekt Watches-App als Startup-Projekt aus und führen Sie Debug aus. Ihre App wird auf den Watches installiert.

Umgang mit Uhren, die die Verbindung zum WiFi unterbrechen (aufgrund von Batteriespareinstellungen)

Wenn Sie versuchen, Wireless Debugging auf Uhren zu aktivieren und die Verbindung immer wieder unterbrochen wird, gehen Sie zu Einstellungen - Verbindung und deaktivieren Sie Bluetooth. Android Wear bleibt dann mit dem WiFi verbunden, um die Verbindung zum gekoppelten Mobiltelefon über WiFi aufrechtzuerhalten.

Teil 1 Fazit

Hoffentlich war diese Einführung leicht verständlich! In Teil 2 werden wir uns spezifische Tipps zum Codebestand ansehen, also bleiben Sie dran!

Teilen:
Luboš ist ein erfahrener .NET-Entwickler (Web und mobile Anwendungen), der mit SQL und DevOps bestens vertraut ist. Er hat zahlreiche Webanwendungen entwickelt, die weltweit von der Industrie und der akademischen Welt genutzt werden. Er hat einen Bachelor-Abschluss in angewandter Physik und Astrophysik. Er spielt gerne Bowling und Geige und fährt E-Mountainbike und Ski.

Article collaborators

SABO Newsletter icon

SABO NEWSLETTER

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

SABO Mobile IT

Für unsere Kunden aus der Industrie entwickeln wir spezialisierte Software zur Umsetzung von Industry 4.0. IoT, Machine Learning und Künstliche Intelligenz ermöglichen uns, signifikante Effizienzsteigerungen bei unseren Kunden zu erzielen.
Über uns