Po zaktualizowaniu aplikacji, aby przygotować ją na Wear OS 4, możesz jeszcze bardziej zwiększyć zgodność aplikacji z tą wersją Wear OS, kierując ją na Androida 13 (poziom API 33).
Jeśli zaktualizujesz docelową wersję pakietu SDK, weź pod uwagę zmiany w działaniu systemu, które obowiązują w przypadku aplikacji kierowanych na Androida 12 lub nowszego oraz na Androida w wersji 13 lub nowszej. Zwróć szczególną uwagę na zmiany w uprawnieniach oraz komponentach aplikacji i sposobie nawigacji, które zostały opisane w dalszej części tego przewodnika.
Aktualizowanie pliku kompilacji
Aby zaktualizować docelową wersję pakietu SDK, otwórz plik build.gradle
lub build.gradle.kts
na poziomie modułu i zaktualizuj je, podając wartości dotyczące Androida 13.
Sposób formatowania wartości w pliku kompilacji zależy od używanej wersji wtyczki Androida do obsługi Gradle (AGP).
AGP 7.0.0 lub nowsza
Jeśli używasz AGP w wersji 7.0.0 lub nowszej, zaktualizuj plik build.gradle
lub build.gradle.kts
aplikacji, podając te wartości w przypadku Androida 13:
Odlotowy
android { compileSdk 33 ... defaultConfig { targetSdk 33 } }
Kotlin
android { compileSdk = 33 ... defaultConfig { targetSdk = 33 } }
AGP 4.2.0 lub wcześniejsza wersja
Jeśli używasz pakietu AGP w wersji 4.2.0 lub starszej, zaktualizuj plik build.gradle
lub build.gradle.kts
aplikacji, podając te wartości związane z Androidem 13:
Odlotowy
android { compileSdkVersion "33" ... defaultConfig { targetSdkVersion "33" } }
Kotlin
android { compileSdkVersion = "33" ... defaultConfig { targetSdkVersion = "33" } }
Zmiany uprawnień
W tej sekcji opisujemy kilka zmian w uprawnieniach, które wpływają na aplikacje kierowane na Androida 13.
Uprawnienia do czujników na ciele w tle
Aby uzyskiwać w tle informacje z popularnych czujników na ciele (np. tętna), poproś o uprawnienie BODY_SENSORS_BACKGROUND
.
Więcej informacji znajdziesz w przewodniku na temat wysyłania prośby o dostęp w tle do danych z czujników na ciele.
Uprawnienie dostępu do precyzyjnych alarmów
Aby używać alarmów precyzyjnych (nazywanych też alarmami ścisłymi), musisz zadeklarować uprawnienie USE_EXACT_ALARM
lub SCHEDULE_EXACT_ALARM
.
Jeśli główne funkcje Twojej aplikacji nie wymagają alarmów precyzyjnych (np. aplikacji budzika czy kalendarza), użyj alarmów nieprecyzyjnych. Większość aplikacji umożliwia planowanie zadań i wydarzeń przy użyciu alarmów nieprecyzyjnych.
Dowiedz się, jak ustawić dokładny alarm.
Szczegółowe uprawnienia do multimediów
Jeśli aplikacja potrzebuje dostępu do plików multimedialnych utworzonych przez inne aplikacje, musisz poprosić o szczegółowe uprawnienia do multimediów zaczynające się od READ_MEDIA_*
, a nie na uprawnienie READ_EXTERNAL_STORAGE
. Jeśli Twoja aplikacja miała wcześniej uprawnienia READ_EXTERNAL_STORAGE
, system automatycznie przyznaje jej wymagane uprawnienia szczegółowe.
Dowiedz się więcej o szczegółowych uprawnieniach do multimediów.
Zmiany w komponentach aplikacji i nawigacji
W tej sekcji opisujemy kilka zmian w działaniu komponentów aplikacji i nawigacji, które wpływają na aplikacje kierowane na Androida 13.
Wymagania dotyczące eksportowania komponentów aplikacji
Jeśli Twoja aplikacja zawiera aktywności, usługi lub odbiorniki, które używają filtrów intencji, musisz wyraźnie zadeklarować atrybut android:exported
w przypadku tych komponentów aplikacji.
Dowiedz się więcej o bezpiecznym eksportowaniu komponentów.
Określanie zmienności intencji oczekujących
Musisz określić, czy każdy obiekt PendingIntent
w aplikacji jest zmienny czy stały. W większości przypadków używa się stałych obiektów PendingIntent
, aby chronić integralność danych w intencji.
Dowiedz się więcej o określaniu zmienności intencji oczekujących.
Ograniczenia dotyczące uruchamiania usług działających na pierwszym planie
W większości przypadków aplikacja nie może uruchomić usług działających na pierwszym planie, gdy działa w tle.
Dowiedz się więcej o ograniczeniach dotyczących uruchamiania usługi na pierwszym planie z poziomu tła.
Ograniczenia dotyczące powiadomień z trampolina
Gdy użytkownik wejdzie w interakcję z powiadomieniem, nie możesz wywołać metody startActivity()
w usłudze ani odbiorniku. Taki komponent aplikacji pełnoekranowej, którego jedyną funkcją do uruchamiania aktywności jest funkcja, jest nazywany trampoliną powiadomień.
Dowiedz się więcej o ograniczeniach dotyczących trampoliny.