Dopo aver aggiornato l'app per prepararla per Wear OS 4, puoi migliorarne ulteriormente la compatibilità con questa versione di Wear OS scegliendo come target Android 13 (livello API 33).
Se aggiorni la versione dell'SDK target, gestisci le modifiche al comportamento del sistema che vengono applicate sia per le app che hanno come target Android 12 o versioni successive sia per le app che hanno come target Android 13 o versioni successive. In particolare, prendi in considerazione le modifiche alle autorizzazioni e ai componenti delle app e al comportamento di navigazione descritte più avanti in questa guida.
Aggiorna il file di build
Per aggiornare la versione target dell'SDK, apri il file build.gradle
o build.gradle.kts
a livello di modulo e aggiornalo con i valori per Android 13.
La modalità di formattazione dei valori nel file di build dipende dalla versione del plug-in Android per Gradle (AGP) che stai utilizzando.
AGP 7.0.0 o versioni successive
Se usi AGP 7.0.0 o versioni successive, aggiorna il file build.gradle
o build.gradle.kts
della tua app con i seguenti valori per Android 13:
Trendy
android { compileSdk 33 ... defaultConfig { targetSdk 33 } }
Kotlin
android { compileSdk = 33 ... defaultConfig { targetSdk = 33 } }
AGP 4.2.0 o precedente
Se usi AGP 4.2.0 o versioni precedenti, aggiorna il file build.gradle
o build.gradle.kts
della tua app con i seguenti valori per Android 13:
Trendy
android { compileSdkVersion "33" ... defaultConfig { targetSdkVersion "33" } }
Kotlin
android { compileSdkVersion = "33" ... defaultConfig { targetSdkVersion = "33" } }
Modifiche alle autorizzazioni
In questa sezione sono elencate diverse modifiche alle autorizzazioni che interessano le app dopo che hanno come target Android 13.
Autorizzazione sensori del corpo in background
Per ottenere informazioni in background dai sensori più comuni, come la frequenza cardiaca, richiedi l'autorizzazione BODY_SENSORS_BACKGROUND
.
Scopri di più nella guida su come richiedere l'accesso in background ai dati dei sensori del corpo.
Autorizzazione sveglia esatta
Per utilizzare le sveglie temporizzate con precisione, note anche come sveglie esatte, devi dichiarare
l'autorizzazione USE_EXACT_ALARM
o SCHEDULE_EXACT_ALARM
.
A meno che le funzionalità di base dell'app non dipendano da sveglie esatte, ad esempio nel caso di un'app di sveglia o di calendario, puoi usare sveglie inesatte. La maggior parte delle app può programmare attività ed eventi usando sveglie inesatte.
Scopri di più su come impostare una sveglia esatta.
Autorizzazioni granulari per i contenuti multimediali
Se la tua app deve accedere ai file multimediali creati da altre app, devi richiedere autorizzazioni granulari per i contenuti multimediali, che iniziano con READ_MEDIA_*
, anziché con l'autorizzazione READ_EXTERNAL_STORAGE
. Se alla tua app è stata precedentemente concessa
l'autorizzazione READ_EXTERNAL_STORAGE
, il sistema concede automaticamente
le autorizzazioni granulari per i contenuti multimediali richieste.
Scopri di più sulle autorizzazioni relative ai contenuti multimediali granulari.
Modifiche ai componenti delle app e alla navigazione
In questa sezione sono elencate diverse modifiche ai componenti delle app e al comportamento di navigazione che interessano le app dopo la loro scelta come target Android 13.
Requisiti per l'esportazione dei componenti dell'app
Se la tua app contiene attività, servizi o ricevitori di trasmissioni che utilizzano
filtri di intent, devi dichiarare esplicitamente l'attributo android:exported
per questi componenti dell'app.
Scopri di più sull'esportazione dei componenti più sicura.
Specifica la mutabilità degli intent in sospeso
Devi specificare se ogni oggetto PendingIntent
nella tua app è modificabile o immutabile. Nella maggior parte dei casi, utilizza oggetti PendingIntent
immutabili per proteggere l'integrità dei dati all'interno dell'intent.
Scopri di più su come specificare la mutabilità degli intent in sospeso.
Limitazioni per il lancio di servizi in primo piano
Nella maggior parte dei casi, l'app non può avviare i servizi in primo piano mentre è in esecuzione in background.
Scopri di più sulle limitazioni relative all'avvio di un servizio in primo piano dal background.
Notifiche: limitazioni relative al trampolino
Dopo che l'utente ha interagito con una notifica, non puoi chiamare
startActivity()
all'interno di un servizio o di un ricevitore di trasmissione. Questo componente dell'app interstitial, la cui unica funzionalità è l'avvio di un'attività, è noto come trampolino di notifica.
Scopri di più sulle limitazioni relative alle notifiche relative al trampolino.