Modifications apportées au framework de compatibilité (Android 15)

Figure 1. L'écran "Modifications de la compatibilité de l'application" dans les options pour les développeurs répertorie les modifications que vous pouvez activer.

Cette page décrit les modifications pouvant être activées par le biais du framework de compatibilité sous Android 15 (niveau d'API 35). Utilisez cette liste conjointement avec les options pour les développeurs et les commandes ADB pour tester et déboguer votre application lorsque vous vous préparez à prendre en charge et à cibler Android 15.

Voici quelques exemples d'utilisation des outils du framework de compatibilité :

  • Tester les modifications ciblées sans réellement modifier la targetSdkVersion de l'application. Vous pouvez utiliser les boutons d'activation/de désactivation pour forcer l'activation de certaines modifications du comportement afin d'évaluer l'impact sur votre application.
  • Axer votre test sur des modifications spécifiques. Plutôt que d'avoir à traiter toutes les modifications ciblées en même temps, les boutons d'activation/de désactivation vous permettent de désactiver toutes les modifications ciblées, à l'exception de celles que vous souhaitez tester.
  • Gérer les boutons d'activation/de désactivation via adb. Vous pouvez utiliser les commandes adb pour activer et désactiver les modifications à activer/désactiver dans votre environnement de test automatisé.
  • Déboguer plus rapidement grâce aux ID de modification standards. Les modifications pouvant être activées/désactivées possèdent un ID et un nom uniques que vous pouvez utiliser pour déboguer rapidement l'origine du problème dans la sortie du journal.

Pour obtenir des informations complètes sur l'utilisation des outils pour chacun de ces cas d'utilisation, consultez la page sur les outils du framework de compatibilité.

Modifications de comportement inclus dans le framework de compatibilité

La liste de cette section décrit les modifications à activer/désactiver incluses dans le framework de compatibilité pour Android 15 et les modifications à activer/désactiver qui peuvent faciliter les tests d'application généraux.

Vous pouvez filtrer la liste des modifications en fonction de leur Default State (État par défaut).

Modifications pouvant être activées dans le framework de compatibilité sous Android 15

CAMERA_MIC_INDICATORS_NOT_PRESENT

ID de modification: 162547999
État par défaut: Désactivé pour toutes les applications.

Indique que cet appareil est compatible avec les indicateurs d'appareil photo et de micro. La valeur est false si elle est présente, car la méthode CompatChanges#isChangeEnabled renvoie true si l'ID de modification n'est pas présent.

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

ID de modification: 320741775
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, isSessionConfigurationSupported vérifie également la compatibilité des paramètres de session lorsqu'ils sont compatibles avec le HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

ID de modification: 296478951
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, le créateur d'un PendingIntent bloque par défaut les lancements d'activités en arrière-plan.

Pour en savoir plus sur ce changement, consultez la section Lancements sécurisés d'activité en arrière-plan de la page dédiée aux modifications de comportement d'Android 15.

DEPRECATE_UI_FONT

ID de modification: 279646685
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsqu'il est activé, l'attribut elegantTextHeight TextView prend la valeur true par défaut lorsque votre application s'exécute sur un appareil équipé d'Android 15 ou version ultérieure. La police compacte utilisée par défaut est remplacée par certains scripts dont les métriques verticales sont volumineuses par des scripts beaucoup plus lisibles.

Pour en savoir plus sur ce changement, consultez la section sur les paramètres par défaut de l'attribut élégantTextHeight sur "true" sur la page dédiée aux modifications de comportement d'Android 15.

DOWNSCALED

ID de modification: 168419799
État par défaut: Désactivé pour toutes les applications.

Cette modification contrôle toutes les modifications à la baisse de la mémoire tampon par application. L'activation de cette modification permet d'appliquer les facteurs de scaling suivants:

Lorsque cette modification est activée pour un package d'application, l'application est automatiquement redimensionnée au facteur de scaling le plus élevé activé. Par exemple, la valeur 80% est utilisée si les valeurs 80% et 70 % (DOWNSCALE_80 et DOWNSCALE_70) sont toutes deux activées. Lorsque cette modification et DOWNSCALED_INVERSE sont activés, DOWNSCALED_INVERSE est prioritaire et le facteur de scaling est appliqué à l'inverse.

DOWNSCALED_INVERSE

ID de modification: 273564678
État par défaut: Désactivé pour toutes les applications.

Cette modification contrôle toutes les modifications de réduction de la capacité inverses de la mémoire tampon par application. L'activation de cette modification permet d'appliquer l'inverse des facteurs de scaling suivants (c'est-à-dire que la résolution est améliorée):

Lorsque cette modification est activée pour un package d'application, l'application est automatiquement redimensionnée au facteur de scaling le plus bas et activé. Par exemple, la valeur 80% est utilisée si les valeurs 80% et 70 % (DOWNSCALE_80 et DOWNSCALE_70) sont activées.En effet, lorsqu'il est appliqué inversement, un facteur de scaling de 80% est égal à 125%, ce qui est inférieur au scaling de 142,86% appliqué lors de l'application inverse d'un facteur de scaling de 70 %. Lorsque cette modification et DOWNSCALED sont activés, DOWNSCALED_INVERSE est prioritaire et le facteur de scaling est appliqué à l'inverse.

DOWNSCALE_30

ID de modification: 189970040
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 30% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 333,33% de la résolution verticale et horizontale de l'affichage réel.

DOWNSCALE_35

ID de modification: 189969749
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 35% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 285,71% de la résolution verticale et horizontale de l'affichage réel.

DOWNSCALE_40

ID de modification: 189970038
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 40% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 250% de l'affichage réel.

DOWNSCALE_45

ID de modification: 189969782
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 45% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 222,22% de la résolution verticale et horizontale de l'affichage réel.

DOWNSCALE_50

ID de modification: 176926741
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 50% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 200% de l'affichage réel.

DOWNSCALE_55

ID de modification: 189970036
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 55% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 181,82% de l'affichage réel.

DOWNSCALE_60

ID de modification: 176926771
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 60% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 166,67% de l'affichage réel.

DOWNSCALE_65

ID de modification: 189969744
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 65% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 153,85% de l'affichage réel.

DOWNSCALE_70

ID de modification: 176926829
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 70% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 142,86% de l'affichage réel.

DOWNSCALE_75

ID de modification: 189969779
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 75% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 133,33% de la résolution verticale et horizontale de l'affichage réel.

DOWNSCALE_80

ID de modification: 176926753
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 80% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 125% de l'affichage réel.

DOWNSCALE_85

ID de modification: 189969734
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 85% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 117,65% de l'affichage réel.

DOWNSCALE_90

ID de modification: 182811243
État par défaut: Désactivé pour toutes les applications.

Si DOWNSCALED est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 90% de l'affichage réel. Si DOWNSCALED_INVERSE est également activé, l'activation de cette modification pour un package oblige l'application à supposer qu'elle s'exécute sur un écran dont la résolution verticale et horizontale correspond à 111,11% de l'affichage réel.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

ID de modification: 202956589
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée et que vous utilisez Arrays.asList(...).toArray(), le type de composant du tableau obtenu est désormais un Object (et non le type des éléments du tableau sous-jacent). Ainsi, le code suivant génère une exception ClassCastException:

String[] elements = (String[]) Arrays.asList("one", "two").toArray();

Dans ce cas, pour conserver String comme type de composant dans le tableau obtenu, vous pouvez utiliser Collection.toArray(Object[]) à la place:

String[] elements = Arrays.asList("two", "one").toArray(new String[0]);

Pour en savoir plus sur ce changement, consultez la section Modifications apportées à l'API OpenJDK sur la page dédiée aux modifications de comportement d'Android 15.

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

ID de modification: 324203798
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, pour éviter que des applications existantes ne présentent des problèmes de compatibilité avec des utilisations de ClientTransaction#getActivityToken() non SDK, n'autorisez que le regroupement de LaunchActivityItem.

ENABLE_MATCH_LOCAL_NETWORK

ID de modification: 319212206
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, les applications reçoivent par défaut des rappels de réseau provenant de réseaux locaux. Les applications ciblant Android 14 (niveau d'API 34) ou version antérieure doivent toujours ajouter NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK au NetworkCapabilities de NetworkRequest pour recevoir des ConnectivityManager.NetworkCallback à partir de réseaux locaux.

ENABLE_STRICT_FORMATTER_VALIDATION

ID de modification: 270674727
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsqu'elle est activée, la validation de l'index d'argument, des options, de la largeur et de la précision est désormais plus stricte lors de l'utilisation des API String.format() et Formatter.format().

Pour en savoir plus sur ce changement, consultez la section Modifications apportées à l'API OpenJDK sur la page dédiée aux modifications de comportement d'Android 15.

ENFORCE_EDGE_TO_EDGE

ID de modification: 309578419
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, les applications sont bord à bord par défaut sur les appareils équipés d'Android 15 ou version ultérieure.

Pour en savoir plus sur cette modification, consultez la section sur l' application bord à bord de la page dédiée aux modifications de comportement d'Android 15.

ENFORCE_STRICT_QUERY_BUILDER

ID de modification: 143231523
État par défaut: Désactivé pour toutes les applications.

Lorsque cette modification est activée, le SQLiteQueryBuilder vérifie toutes les sélections de requêtes de CalendarProvider2 par rapport à des arguments malveillants.

FGS_BOOT_COMPLETED_RESTRICTIONS

ID de modification: 296558535
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, elle désactive le démarrage en arrière-plan du service de premier plan à partir des diffusions BOOT_COMPLETED pour tous les types, sauf:

Pour en savoir plus sur cette modification, consultez la section Restrictions concernant le lancement de services de premier plan par les broadcast receivers BOOT_COMPLETED de la page des modifications de comportement d'Android 15.

FGS_INTRODUCE_TIME_LIMITS

ID de modification: 317799821
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, les services de premier plan de certains types sont limités dans le temps. Si le service de premier plan du type incriminé n'est pas arrêté dans le délai imparti, il reçoit un rappel via Service.onTimeout(int, int). Il doit ensuite être arrêté en quelques secondes. Si une application ne le fait pas, une erreur ANR sera déclarée.

Pour en savoir plus sur cette modification, consultez les sections de la page dédiée aux modifications de comportement d'Android 15 sur le comportement du délai avant expiration pour les types de services de premier plan Synchronisation des données et Traitement multimédia.

FGS_SAW_RESTRICTIONS

ID de modification: 319471980
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, l'arrière-plan du service de premier plan est désactivé dans la fenêtre d'alerte système pour tous les types, sauf s'il possède déjà une fenêtre de superposition système.

Pour en savoir plus sur ce changement, consultez la section Restrictions sur le démarrage de services de premier plan lorsqu'une application détient l'autorisation SYSTEM_ALERT_WINDOW de la page dédiée aux modifications de comportement d'Android 15.

FORCE_DISABLE_HEVC_SUPPORT

ID de modification: 174227820
État par défaut: Désactivé pour toutes les applications.

Forcer la désactivation de la compatibilité d'une application avec les fonctionnalités multimédias HEVC. Les applications doivent déclarer leurs fonctionnalités multimédias compatibles dans leur fichier manifeste, mais cet indicateur peut être utilisé pour forcer une application à ne pas prendre en charge HEVC, forçant ainsi le transcodage lorsqu'elle accède à des contenus multimédias encodés en HEVC. L'utilisation de cet indicateur remplace toutes les valeurs par défaut au niveau de l'OS pour les applications. Il est désactivé par défaut, ce qui signifie que les valeurs par défaut de l'OS prévalent. Si cet indicateur et FORCE_ENABLE_HEVC_SUPPORT sont tous deux activés, l'OS ignore les deux.

FORCE_ENABLE_HEVC_SUPPORT

ID de modification: 174228127
État par défaut: Désactivé pour toutes les applications.

Forcer l'activation d'une application pour prendre en charge les fonctionnalités multimédias HEVC. Les applications doivent déclarer leurs fonctionnalités multimédias compatibles dans leur fichier manifeste, mais cet indicateur peut être utilisé pour forcer une application à prendre en charge le format HEVC, évitant ainsi le transcodage lors de l'accès aux contenus multimédias encodés en HEVC. L'utilisation de cet indicateur remplace toutes les valeurs par défaut au niveau de l'OS pour les applications. Il est désactivé par défaut, ce qui signifie que les valeurs par défaut de l'OS prévalent. Si cet indicateur et FORCE_DISABLE_HEVC_SUPPORT sont tous deux activés, l'OS ignore les deux.

FORCE_NON_RESIZE_APP

ID de modification: 181146395
État par défaut: Désactivé pour toutes les applications.

Empêche le non-redimensionnement des packages auxquels il est appliqué.

FORCE_RESIZE_APP

ID de modification: 174042936
État par défaut: Désactivé pour toutes les applications.

Force le redimensionnement des packages auxquels il est appliqué. Nous n'autorisons le redimensionnement qu'en mode fenêtrage plein écran, sans forcer l'application à passer en mode multifenêtrage redimensionnable.

GWP_ASAN

ID de modification: 145634846
État par défaut: Désactivé pour toutes les applications.

Active la détection de bugs dans la mémoire native échantillonnée dans les applications.

Pour en savoir plus sur l'utilisation de GWP-ASan, consultez le guide GWP-ASan.

IS_DEVICE_OWNER_USER_AWARE

ID de modification: 307233716
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, la méthode isDeviceOwnerApp(String) utilise l'utilisateur contenu dans le contexte. Pour les applications ciblant Android 14 (niveau d'API 34) ou version antérieure, l'utilisateur du processus d'appel sera utilisé (Process.myUserHandle()).

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

ID de modification: 308670109
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, les applications ne peuvent plus modifier l'état général ni la règle du mode Ne pas déranger (Ne pas déranger) sur un appareil (en modifiant les paramètres utilisateur ou en désactivant le mode Ne pas déranger). À la place, les applications doivent contribuer à un AutomaticZenRule, que le système combine dans une règle globale avec le schéma de règles les plus restrictives existant.

Pour en savoir plus sur ce changement, consultez la section Modifications apportées à la façon dont les applications peuvent modifier l'état général du mode Ne pas déranger de la page dédiée aux modifications de comportement d'Android 15.

NATIVE_HEAP_ZERO_INIT

ID de modification: 178038272
État par défaut: Désactivé pour toutes les applications.

Activez l'initialisation automatique à zéro des allocations de mémoire du tas de mémoire natif.

NATIVE_MEMTAG_ASYNC

ID de modification: 145772972
État par défaut: Désactivé pour toutes les applications.

Active la vérification asynchrone (ASYNC) des tags de mémoire dans ce processus. Cet indicateur n'affecte que le matériel compatible avec la Memory Tagging Extension (MTE) ARM.

NATIVE_MEMTAG_SYNC

ID de modification: 177438394
État par défaut: Désactivé pour toutes les applications.

Active la vérification synchrone (SYNC) des tags de mémoire dans ce processus. Cet indicateur n'affecte que le matériel compatible avec la Memory Tagging Extension (MTE) ARM. Si NATIVE_MEMTAG_ASYNC et cette option sont activés, cette option est prioritaire, et MTE est activé en mode SYNC.

OVERRIDE_ANY_ORIENTATION

ID de modification: 265464455
État par défaut: Désactivé pour toutes les applications.

Lorsqu'elle est activée, cette modification permet d'appliquer les forçages d'orientation suivants, quelle que soit l'orientation demandée par l'activité:

OVERRIDE_ANY_ORIENTATION_TO_USER

ID de modification: 310816437
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, SCREEN_ORIENTATION_USER est activé, ce qui remplace toute orientation demandée par l'activité. Les applications à orientation fixe peuvent être remplacées en plein écran sur les appareils à grand écran où ignoreOrientationRequest est activé avec ce forçage.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

ID de modification: 314961188
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, elle exclut les packages auxquels le forçage est appliqué du traitement de compatibilité de l'appareil photo en mode fenêtrage libre pour les applications à orientation fixe.

En mode fenêtrage de format libre, le traitement de compatibilité émule l'exécution sur un appareil en mode portrait en mettant au format letterbox sur la fenêtre de l'application et en modifiant les caractéristiques de l'appareil photo selon les attentes courantes des applications sur un appareil en mode portrait: rotation des capteurs à 90 et 270 degrés respectivement pour les caméras avant et arrière, et en définissant la rotation de l'écran sur 0.

Utilisez cet indicateur pour désactiver le traitement de compatibilité pour les applications qui ne répondent pas bien au traitement.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

ID de modification: 191514214
État par défaut: Désactivé pour toutes les applications.

Lorsqu'elle est activée, cette modification oblige les packages auxquels elle est appliquée à ignorer la valeur actuelle de android:resizeableActivity ainsi que le SDK cible inférieur ou égal à Android 6.0 (niveau d'API 23) et à considérer l'activité comme non redimensionnable. Dans ce cas, la valeur de rotation et de recadrage de la caméra ne dépend que de la compensation nécessaire, compte tenu de la rotation actuelle de l'écran.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

ID de modification: 189229956
État par défaut: Désactivé pour toutes les applications.

Lorsqu'elle est activée, cette modification oblige les packages auxquels elle est appliquée à ignorer le comportement de rotation et de recadrage par défaut de la caméra, et à toujours renvoyer CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

ID de modification: 316897322
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, les utilisateurs ont la possibilité de capturer une seule application ou l'intégralité de l'écran lorsqu'ils lancent une session MediaProjection, ignorant ainsi l'utilisation de MediaProjectionConfig#createConfigForDefaultDisplay.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

ID de modification: 266124927
État par défaut: Désactivé pour toutes les applications.

Active SCREEN_ORIENTATION_REVERSE_LANDSCAPE pour l'application à laquelle elle s'applique. À moins que OVERRIDE_ANY_ORIENTATION ne soit également activé, SCREEN_ORIENTATION_REVERSE_LANDSCAPE n'est utilisé que lorsque l'activité spécifie l'orientation paysage. L'activation de cette modification peut vous aider à tester le comportement de votre application pour détecter les différences entre les appareils dont l'orientation paysage correspond à Surface.ROTATION_90 et les appareils où elle correspond à Surface.ROTATION_270.

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

ID de modification: 332679525
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, elle remplace la mise en page en mode Encoche. Cela ne s'applique que si l'option "Bord à bord" n'est pas appliquée.

OVERRIDE_MIN_ASPECT_RATIO

ID de modification: 174042980
État par défaut: Désactivé pour toutes les applications.

Cette modification contrôle toutes les modifications qui forcent un format minimal donné. L'activation de cette modification permet d'appliquer les formats minimaux suivants :

Lorsque cette modification est activée pour un package d'application, le format minimal indiqué dans le fichier manifeste de l'application est remplacé par le plus grand format activé, sauf si la valeur du fichier manifeste de l'application est plus élevée.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

ID de modification: 218959984
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, elle ignore la restriction de format minimal en plein écran en mode portrait afin d'utiliser tout l'espace disponible sur l'écran.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

ID de modification: 180326787
État par défaut: Désactivé pour toutes les applications.

Lorsque OVERRIDE_MIN_ASPECT_RATIO est également activé, l'activation de cette modification pour un package définit le format minimal de l'activité sur une valeur élevée, telle que définie par OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

ID de modification: 180326845
État par défaut: Désactivé pour toutes les applications.

Lorsque OVERRIDE_MIN_ASPECT_RATIO est également activé, l'activation de cette modification pour un package définit le format minimal de l'activité sur une valeur moyenne telle que définie par OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA

ID de modification: 325586858
État par défaut: Désactivé pour toutes les applications.

Lorsque cette option est activée, les traitements qui forcent l'application d'un format minimal donné sont limités afin qu'ils ne s'appliquent que lorsqu'une application est connectée à l'appareil photo.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

ID de modification: 203647190
État par défaut: Activé pour toutes les applications.

Lorsque OVERRIDE_MIN_ASPECT_RATIO est également activé, cette modification limite toute autre modification qui force le format minimal d'une activité à une certaine valeur (comme OVERRIDE_MIN_ASPECT_RATIO_LARGE et OVERRIDE_MIN_ASPECT_RATIO_MEDIUM) aux activités qui ont également une orientation portrait.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

ID de modification: 236283604
État par défaut: Désactivé pour toutes les applications.

Lorsque cette modification est activée, les packages concernés sont exclus des restrictions d'orientation que les fabricants d'appareils peuvent définir.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

ID de modification: 265451093
État par défaut: Désactivé pour toutes les applications.

Active SCREEN_ORIENTATION_NOSENSOR pour l'application à laquelle elle s'applique. À moins que OVERRIDE_ANY_ORIENTATION ne soit également activé, SCREEN_ORIENTATION_NOSENSOR n'est utilisé que lorsque l'activité ne spécifie aucune autre orientation fixe.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

ID de modification: 265452344
État par défaut: Désactivé pour toutes les applications.

Active SCREEN_ORIENTATION_PORTRAIT pour l'application à laquelle elle s'applique. À moins que OVERRIDE_ANY_ORIENTATION ne soit également activé, SCREEN_ORIENTATION_PORTRAIT n'est utilisé que lorsque l'activité ne spécifie aucune autre orientation fixe.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

ID de modification: 319400769
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, elle permet l'analyse des en-têtes Content-Disposition conformes à la norme RFC 6266. Cela permet en particulier d'analyser les valeurs filename* pouvant utiliser un autre encodage de caractères.

RATE_LIMIT_TOASTS

ID de modification: 174840628
État par défaut: Cette modification ne peut pas être activée/désactivée. Il n'est enregistré que par le framework de compatibilité.

Active la limitation du nombre d'appels Toast.show() pour éviter de surcharger l'utilisateur avec trop de toasts en peu de temps. Toute tentative d'affichage d'un nombre de toasts supérieur à celui autorisé sur une période donnée entraîne la suppression du toast.

STREAM_INT_DIFFERS_FROM_NEXT_INT

ID de modification: 308103782
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsqu'elles sont activées, les méthodes Random.ints() renvoient désormais une séquence de chiffres différente de celle des méthodes Random.nextInt(). Cela est dû aux modifications apportées à https://bugs.openjdk.org/browse/JDK-8301574.

Pour en savoir plus sur ce changement, consultez la section Modifications apportées à l'API OpenJDK sur la page dédiée aux modifications de comportement d'Android 15.

USE_EXPERIMENTAL_COMPONENT_ALIAS

ID de modification: 196254758
État par défaut: Désactivé pour toutes les applications.

L'activation de cette modification permet au système d'autoriser le package "android" à utiliser des alias de composants.

USE_NEW_ISO_LOCALE_CODES

ID de modification: 291868760
État par défaut: Activé pour les applications qui ciblent Android 15 (niveau d'API 35) ou version ultérieure.

Lorsque cette option est activée, les codes de langue pour l'hébreu, le yiddish et l'indonésien ne sont plus convertis dans leurs formes obsolètes (hébreu : iw, yiddish: ji et indonésien : in).

Pour en savoir plus sur ce changement, consultez la section Modifications apportées à l'API OpenJDK sur la page dédiée aux modifications de comportement d'Android 15.