Aggiorna la versione dell'SDK target della tua app per Wear OS 4

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.