Nachdem Sie Ihre App aktualisiert haben, um sie für Wear OS 4 vorzubereiten, können Sie die Kompatibilität der App mit dieser Wear OS-Version weiter verbessern, indem Sie sie auf Android 13 (API-Level 33) ausrichten.
Wenn Sie Ihre SDK-Zielversion aktualisieren, sollten Sie Änderungen des Systemverhaltens berücksichtigen, die für Apps, die auf Android 12 oder höher ausgerichtet sind, sowie für Apps, die auf Android 13 oder höher ausgerichtet sind. Beachten Sie insbesondere die weiter unten in diesem Leitfaden beschriebenen Änderungen an den Berechtigungen sowie an den App-Komponenten und dem Navigationsverhalten.
Build-Datei aktualisieren
Zum Aktualisieren der SDK-Zielversion öffnest du die Datei build.gradle
oder build.gradle.kts
auf Modulebene und aktualisierst sie mit Werten für Android 13.
Wie Sie die Werte in Ihrer Build-Datei formatieren, hängt von der Version des verwendeten Android-Gradle-Plug-ins (AGP) ab.
AGP 7.0.0 oder höher
Wenn du AGP 7.0.0 oder höher verwendest, aktualisiere die Datei build.gradle
oder build.gradle.kts
deiner App mit den folgenden Werten für Android 13:
Groovig
android { compileSdk 33 ... defaultConfig { targetSdk 33 } }
Kotlin
android { compileSdk = 33 ... defaultConfig { targetSdk = 33 } }
AGP 4.2.0 oder niedriger
Wenn du AGP 4.2.0 oder niedriger verwendest, aktualisiere die Datei build.gradle
oder build.gradle.kts
deiner App mit den folgenden Werten für Android 13:
Groovig
android { compileSdkVersion "33" ... defaultConfig { targetSdkVersion "33" } }
Kotlin
android { compileSdkVersion = "33" ... defaultConfig { targetSdkVersion = "33" } }
Änderungen an Berechtigungen
In diesem Abschnitt werden mehrere Änderungen an Berechtigungen aufgeführt, die sich auf Apps nach Android 13 auswirken.
Berechtigung für Körpersensoren im Hintergrund
Wenn Sie Informationen von gängigen Körpersensoren wie die Herzfrequenz im Hintergrund abrufen möchten, fordern Sie die Berechtigung BODY_SENSORS_BACKGROUND
an.
Weitere Informationen finden Sie in der Anleitung Hintergrundzugriff auf Körpersensordaten anfordern.
Berechtigung „Exakter Alarm“
Wenn du zeitgenaue Alarme verwenden möchtest, die auch als genaue Alarme bezeichnet werden, musst du entweder die Berechtigung USE_EXACT_ALARM
oder SCHEDULE_EXACT_ALARM
deklarieren.
Sofern die Hauptfunktionen Ihrer App nicht von exakten Alarmen abhängig sind, z. B. für eine Wecker-App oder eine Kalender-App, sollten Sie stattdessen genaue Alarme verwenden. Die meisten Apps können Aufgaben und Ereignisse mit ungenauen Alarmen planen.
Weitere Informationen zum Stellen eines genauen Weckers
Detaillierte Medienberechtigungen
Wenn Ihre App auf Mediendateien zugreifen muss, die von anderen Apps erstellt wurden, müssen Sie detaillierte Medienberechtigungen anfordern, die mit READ_MEDIA_*
statt mit der Berechtigung READ_EXTERNAL_STORAGE
beginnen. Wenn Ihrer App zuvor die Berechtigung READ_EXTERNAL_STORAGE
gewährt wurde, erteilt das System die erforderlichen detaillierten Medienberechtigungen automatisch.
Weitere Informationen zu detaillierten Medienberechtigungen
Änderungen an App-Komponenten und Navigation
In diesem Abschnitt werden mehrere Änderungen an App-Komponenten und dem Navigationsverhalten aufgeführt, die sich auf Apps auswirken, die auf Android 13 ausgerichtet sind.
Anforderungen für den Export von App-Komponenten
Wenn Ihre App Aktivitäten, Dienste oder Übertragungsempfänger enthält, die Intent-Filter verwenden, müssen Sie das Attribut android:exported
für diese App-Komponenten explizit deklarieren.
Weitere Informationen zum sicheren Exportieren von Komponenten
Veränderlichkeit von ausstehenden Intents angeben
Sie müssen angeben, ob jedes PendingIntent
-Objekt in Ihrer App änderbar oder unveränderlich ist. In den meisten Fällen sollten Sie unveränderliche PendingIntent
-Objekte verwenden, um die Integrität der Daten innerhalb des Intents zu schützen.
Weitere Informationen zum Angeben der Veränderlichkeit von ausstehenden Intents
Einschränkungen bei der Einführung von Diensten im Vordergrund
In den meisten Fällen können bei der Ausführung Ihrer App im Hintergrund keine Dienste im Vordergrund gestartet werden.
Benachrichtigung über Trampolin-Einschränkungen
Nachdem der Nutzer mit einer Benachrichtigung interagiert hat, können Sie startActivity()
nicht mehr innerhalb eines Dienstes oder Empfängers aufrufen. Eine solche Interstitial-App-Komponente, deren einzige Funktion eine Aktivität startet, wird als Benachrichtigungtrampolin bezeichnet.
Weitere Informationen zu Einschränkungen bei Trampolin-Benachrichtigungen