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.
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.
Ö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.
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).
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.
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).
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:
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.
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.
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.
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.
Hoffentlich war diese Einführung leicht verständlich! In Teil 2 werden wir uns spezifische Tipps zum Codebestand ansehen, also bleiben Sie dran!