Zaktualizuj docelową wersję pakietu SDK aplikacji na Wear OS 4

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.