Mettez à jour la version du SDK cible de votre application pour Wear OS 4

Après avoir mis à jour votre application pour la préparer à Wear OS 4, vous pouvez améliorer davantage sa compatibilité avec cette version de Wear OS en ciblant Android 13 (niveau d'API 33).

Si vous mettez à jour la version de votre SDK cible, gérez les modifications de comportement du système qui s'appliquent aux applications qui ciblent Android 12 ou version ultérieure, ainsi que celles qui ciblent Android 13 ou version ultérieure. Tenez compte en particulier des modifications apportées aux autorisations et aux composants d'application ainsi qu'au comportement de navigation, qui sont décrites plus loin dans ce guide.

Mettre à jour votre fichier de compilation

Pour mettre à jour la version de votre SDK cible, ouvrez le fichier build.gradle ou build.gradle.kts au niveau du module, puis mettez-le à jour avec des valeurs pour Android 13.

La mise en forme des valeurs dans votre fichier de compilation dépend de la version du plug-in Android Gradle (AGP) que vous utilisez.

AGP 7.0.0 ou version ultérieure

Si vous utilisez AGP 7.0.0 ou une version ultérieure, mettez à jour le fichier build.gradle ou build.gradle.kts de votre application avec les valeurs suivantes pour Android 13 :

Groovy

android {
    compileSdk 33
    ...
    defaultConfig {
        targetSdk 33
    }
}

Kotlin

android {
    compileSdk = 33
    ...
    defaultConfig {
        targetSdk = 33
    }
}

AGP 4.2.0 ou version antérieure

Si vous utilisez AGP 4.2.0 ou une version antérieure, mettez à jour le fichier build.gradle ou build.gradle.kts de votre application avec les valeurs suivantes pour Android 13 :

Groovy

android {
    compileSdkVersion "33"
    ...
    defaultConfig {
        targetSdkVersion "33"
    }
}

Kotlin

android {
    compileSdkVersion = "33"
    ...
    defaultConfig {
        targetSdkVersion = "33"
    }
}

Modifications apportées aux autorisations

Cette section répertorie plusieurs modifications apportées aux autorisations qui affectent les applications après avoir ciblé Android 13.

Autorisation d'accès aux capteurs corporels en arrière-plan

Pour obtenir en arrière-plan des informations à partir des capteurs corporels courants, comme la fréquence cardiaque, demandez l'autorisation BODY_SENSORS_BACKGROUND.

Pour en savoir plus, consultez le guide sur la demande d'accès en arrière-plan aux données des capteurs corporels.

Autorisation "Alarme exacte"

Pour utiliser des alarmes à une heure précise, également appelées alarmes exactes, vous devez déclarer l’autorisation USE_EXACT_ALARM ou SCHEDULE_EXACT_ALARM.

À moins que les capacités de base de votre application ne dépendent d'alarmes exactes, par exemple pour les applications d'horloge ou d'agenda, utilisez plutôt des alarmes inexactes. La plupart des applications peuvent planifier des tâches et des événements à l'aide d'alarmes inexactes.

Découvrez comment régler une alarme exacte.

Autorisations multimédias précises

Si votre application doit accéder à des fichiers multimédias créés par d'autres applications, vous devez demander des autorisations multimédias précises, commençant par READ_MEDIA_*, au lieu de l'autorisation READ_EXTERNAL_STORAGE. Si l'autorisation READ_EXTERNAL_STORAGE a déjà été accordée à votre application, le système accorde automatiquement les autorisations multimédias précises requises.

En savoir plus sur les autorisations multimédias précises.

Modifications apportées aux composants de l'application et à la navigation

Cette section répertorie plusieurs modifications apportées au composant d'application et au comportement de navigation qui affectent les applications après avoir ciblé Android 13.

Exigences concernant l'exportation des composants d'application

Si votre application contient des activités, des services ou des broadcast receivers qui utilisent des filtres d'intent, vous devez déclarer explicitement l'attribut android:exported pour ces composants d'application.

Pour en savoir plus sur l'exportation de composants plus sécurisée, consultez cette page.

Spécifier la mutabilité des intents en attente

Vous devez spécifier si chaque objet PendingIntent de votre application est modifiable ou non. Dans la plupart des cas, utilisez des objets PendingIntent non modifiables pour protéger l'intégrité des données dans l'intent.

Découvrez comment spécifier la mutabilité des intents en attente.

Restrictions de lancement des services de premier plan

Dans la plupart des cas, votre application ne peut pas démarrer de services de premier plan lorsqu'elle s'exécute en arrière-plan.

Pour en savoir plus sur les restrictions concernant le démarrage d'un service de premier plan en arrière-plan, consultez cette page.

Restrictions liées aux trampolines de notification

Une fois que l'utilisateur a interagi avec une notification, vous ne pouvez pas appeler startActivity() au sein d'un service ou d'un broadcast receiver. Ce composant d'application interstitiel, dont la seule fonctionnalité est de lancer une activité, est appelé trampoline de notification.

En savoir plus sur les restrictions liées aux trampolines de notification