Modifiche al framework di compatibilità (Android 15)

Figura 1. La schermata Modifiche alla compatibilità delle app nelle opzioni sviluppatore elenca le modifiche che puoi attivare o disattivare.

Questa pagina descrive le modifiche attivabili che fanno parte della compatibilità in Android 15 (livello API 35). Utilizza questo elenco insieme a opzioni sviluppatore e comandi ADB per testare ed eseguire il debug della tua app mentre ti prepari a supportare e scegliere come target Android 15.

Ecco alcune delle cose che puoi fare utilizzando gli strumenti del framework di compatibilità:

  • Testa le modifiche mirate senza modificare effettivamente la versione SDK di destinazione dell'app. Puoi utilizzare gli switch per attivare forzatamente modifiche specifiche del comportamento in base al targeting per valutare l'impatto sulla tua app esistente.
  • Concentra i test solo su modifiche specifiche. Anziché dover gestire tutte le modifiche prese di mira contemporaneamente, i pulsanti di attivazione/disattivazione ti consentono di disattivare tutte le modifiche prese di mira, ad eccezione di quelle che vuoi testare.
  • Gestisci i pulsanti di attivazione/disattivazione tramite ADB. Puoi utilizzare i comandi adb per attivare e disattivare le modifiche attivabili/disattivabili nell'ambiente di test automatico.
  • Esegui il debug più rapidamente utilizzando gli ID delle modifiche standard. Ogni modifica attiva/disattiva ha un ID e un nome univoci che puoi utilizzare per eseguire rapidamente il debug della causa principale nell'output del log.

Per informazioni dettagliate sull'utilizzo degli strumenti per ciascuno di questi casi d'uso, consulta Strumenti del framework di compatibilità.

Modifiche del comportamento incluse nel framework di compatibilità

L'elenco in questa sezione descrive le modifiche attivabili incluse nel framework di compatibilità per le modifiche relative ad Android 15 e le modifiche attivabili che possono essere utili per i test generali delle app.

Puoi filtrare l'elenco delle modifiche in base allo stato predefinito.

Modifiche attivabili/disattivabili nel framework di compatibilità in Android 15

CAMERA_MIC_INDICATORS_NOT_PRESENT

Modifica ID: 162547999
Stato predefinito: disabilitato per tutte le app.

Indica che questo dispositivo supporta gli indicatori della fotocamera e del microfono. Il valore è false se presente, perché il valore CompatChanges#isChangeEnabled restituisce true se l'ID modifica non è presente.

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

ID modifica: 320741775
Stato predefinito: abilitato per le app che hanno come target Android 15 (livello API 35) o versioni successive.

Quando l'opzione è attiva, isSessionConfigurationSupported verifica anche la compatibilità dei parametri di sessione se supportati l'HAL.

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

Modifica ID: 296478951
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se questa opzione è attivata, per impostazione predefinita il creator di un PendingIntent blocca l'avvio delle attività in background.

Per scoprire di più su questa modifica, consulta la sezione su Android 15 la pagina delle modifiche al comportamento degli utenti Lanci di attività in background protette.

DEPRECATE_UI_FONT

ID modifica: 279646685
Stato predefinito: abilitato per le app che hanno come target Android 15 (livello API 35) o versioni successive.

Quando questa opzione è abilitata, L'attributo elegantTextHeight TextView diventa true per impostazione predefinita se la tua app è in esecuzione su un dispositivo con Android 15 o versioni successive e sostituisce il carattere compatto utilizzato per impostazione predefinita con alcuni script con grandi metriche verticali, di cui una molto più leggibile.

Per scoprire di più su questa modifica, consulta la sezione della pagina relativa alle modifiche del comportamento di Android 15 sull'attributo elegantTextHeight che per impostazione predefinita è impostato su true.

DOWNSCALED

Modifica ID: 168419799
Stato predefinito: disabilitato per tutte le app.

Questa modifica funge da punto di riferimento per tutto il downscaling del buffer per app modifiche. L'attivazione di questa modifica consente di applicare i seguenti fattori di scala:

Quando questa modifica è attivata per un pacchetto di app, l'app viene ridimensionata forzatamente in base al fattore di scala più elevato abilitato. Ad esempio, l'80% è utilizzata se sia l'80% che il 70% (DOWNSCALE_80 e DOWNSCALE_70) sono abilitate. Quando sia questa modifica DOWNSCALED_INVERSE sono attivata, DOWNSCALED_INVERSE ha la precedenza e il fattore di scala viene applicato invertito.

DOWNSCALED_INVERSE

ID modifica: 273564678
Stato predefinito: disattivato per tutte le app.

Questa modifica è il gatekeeper di tutte le modifiche di ridimensionamento inverso del buffer per app. L'attivazione di questa modifica consente: di fattori di scala da applicare in modo inverso (ovvero, la risoluzione viene migliorato):

Quando questa modifica viene abilitata per un pacchetto dell'app, l'app viene ridimensionato al fattore di scala abilitato più basso. Ad esempio, l'80% è utilizzata se sia l'80% che il 70% (DOWNSCALE_80 e DOWNSCALE_70) sono attivate perché se applicato al contrario, un fattore di scala dell'80% equivale al 125%, inferiore alla scala del 142,86% applicata quando applicando un fattore di scala del 70%. Quando sia questa modifica DOWNSCALED sono attivata, DOWNSCALED_INVERSE ha la precedenza e il fattore di scala viene applicato invertito.

DOWNSCALE_30

ID modifica: 189970040
Stato predefinito: disattivato per tutte le app.

Se è attivata anche la proprietà DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 30% della risoluzione verticale e orizzontale del display reale. Se DOWNSCALED_INVERSE è attiva anche l'opzione, l'attivazione di questa modifica per un pacchetto impone all'app supponiamo che sia in esecuzione su un display con il 333,33% risoluzione orizzontale del display reale.

DOWNSCALE_35

ID modifica: 189969749
Stato predefinito: disattivato per tutte le app.

Se è attivata anche la proprietà DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 35% della risoluzione verticale e orizzontale del display reale. Se DOWNSCALED_INVERSE è attiva anche l'opzione, l'attivazione di questa modifica per un pacchetto impone all'app supponiamo che stia funzionando su un display con il 285,71% dei risoluzione orizzontale del display reale.

DOWNSCALE_40

ID modifica: 189970038
Stato predefinito: disattivato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene mostrata su un display con il 40% dei campi verticali e orizzontali risoluzione del display reale. Se DOWNSCALED_INVERSE è attiva anche l'opzione, l'attivazione di questa modifica per un pacchetto impone all'app supponiamo che sia in esecuzione su un display con il 250% dello spazio risoluzione orizzontale del display reale.

DOWNSCALE_45

Modifica ID: 189969782
Stato predefinito: disabilitato per tutte le app.

Se è attivata anche la proprietà DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 45% della risoluzione verticale e orizzontale del display reale. Se anche DOWNSCALED_INVERSE è attivato, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 222,22% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_50

Modifica ID: 176926741
Stato predefinito: disabilitato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene mostrata su un display con il 50% dei campi verticali e orizzontali risoluzione del display reale. Se anche DOWNSCALED_INVERSE è attivato, l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 200% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_55

Modifica ID: 189970036
Stato predefinito: disabilitato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene mostrata su un display con il 55% dei campi verticali e orizzontali risoluzione del display reale. Se anche DOWNSCALED_INVERSE è attivo, l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 181,82% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_60

ID modifica: 176926771
Stato predefinito: disabilitato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene mostrata su un display con il 60% dei campi verticali e orizzontali risoluzione del display reale. Se DOWNSCALED_INVERSE è attiva anche l'opzione, l'attivazione di questa modifica per un pacchetto impone all'app supponiamo che sia in esecuzione su un display con il 166,67% risoluzione orizzontale del display reale.

DOWNSCALE_65

ID modifica: 189969744
Stato predefinito: disabilitato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene mostrata su un display con il 65% dei campi verticali e orizzontali risoluzione del display reale. Se DOWNSCALED_INVERSE è attiva anche l'opzione, l'attivazione di questa modifica per un pacchetto impone all'app supponiamo che sia in esecuzione su un display con il 153,85% risoluzione orizzontale del display reale.

DOWNSCALE_70

Modifica ID: 176926829
Stato predefinito: disabilitato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene mostrata su un display con il 70% dei campi verticali e orizzontali risoluzione del display reale. Se DOWNSCALED_INVERSE è attiva anche l'opzione, l'attivazione di questa modifica per un pacchetto impone all'app supponiamo che sia in esecuzione su un display con il 142,86% risoluzione orizzontale del display reale.

DOWNSCALE_75

ID modifica: 189969779
Stato predefinito: disattivato per tutte le app.

Se è attivata anche la proprietà DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 75% della risoluzione verticale e orizzontale del display reale. Se anche DOWNSCALED_INVERSE è attivo, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 133,33% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_80

ID modifica: 176926753
Stato predefinito: disabilitato per tutte le app.

Se è attivata anche la proprietà DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con l'80% della risoluzione verticale e orizzontale del display reale. Se anche DOWNSCALED_INVERSE è attivo, l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 125% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_85

Modifica ID: 189969734
Stato predefinito: disabilitato per tutte le app.

Se DOWNSCALED è anche abilitata, l'attivazione di questa modifica per un pacchetto impone all'app di assumere viene eseguita su un display con l'85% dei campi verticali e orizzontali risoluzione del display reale. Se anche DOWNSCALED_INVERSE è attivo, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 117,65% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_90

ID modifica: 182811243
Stato predefinito: disabilitato per tutte le app.

Se è attivata anche la proprietà DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a supporre di essere in esecuzione su un display con il 90% della risoluzione verticale e orizzontale del display reale. Se anche DOWNSCALED_INVERSE è attivo, l'attivazione di questa modifica per un pacchetto forza l'app a supporre che sia in esecuzione su un display con il 111,11% della risoluzione verticale e orizzontale del display reale.

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

Modifica ID: 202956589
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se questa opzione è attivata e utilizzi Arrays.asList(...).toArray(), il tipo di componente dell' آرایه risultante ora è un Object, non il tipo degli elementi dell' آرایه sottostante. Pertanto, il seguente codice genera un ClassCastException:

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

In questo caso, per conservare String come tipo di componente nell'array risultante, puoi utilizzare Collection.toArray(Object[]) al suo posto:

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

Per saperne di più su questa modifica, consulta la sezione relativa alle modifiche all'API OpenJDK nella pagina relativa alle modifiche del comportamento di Android 15.

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

Modifica ID: 324203798
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Quando questa opzione è attiva, per evitare che le app esistenti abbiano problemi di compatibilità con gli utilizzi non SDK di ClientTransaction#getActivityToken(), consentire solo il raggruppamento LaunchActivityItem.

ENABLE_MATCH_LOCAL_NETWORK

Modifica ID: 319212206
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se questa impostazione è attiva, le app ricevono chiamate di ritorno di rete dalle reti locali per impostazione predefinita. Le app che hanno come target Android 14 (livello API 34) o versioni precedenti devono comunque aggiungere NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK alla NetworkCapabilities di NetworkRequest per ricevere ConnectivityManager.NetworkCallback dalle reti locali.

ENABLE_STRICT_FORMATTER_VALIDATION

Modifica ID: 270674727
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se abilitata, la convalida di indice, flag, larghezza e precisione degli argomenti ora è più rigorosa quando si utilizzano le API String.format() e Formatter.format().

Per saperne di più su questa modifica, consulta la sezione relativa alle modifiche all'API OpenJDK nella pagina relativa alle modifiche del comportamento di Android 15.

ENFORCE_EDGE_TO_EDGE

Modifica ID: 309578419
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Quando l'opzione è abilitata, la configurazione predefinita delle app sarà edge-to-edge sui dispositivi con Android 15 o versioni successive.

Per scoprire di più su questa modifica, consulta la sezione della pagina relativa alle modifiche del comportamento di Android 15 relativa all'applicazione forzata dall'inizio alla fine.

ENFORCE_STRICT_QUERY_BUILDER

Modifica ID: 143231523
Stato predefinito: disabilitato per tutte le app.

Se è attiva, SQLiteQueryBuilder verifica tutte le selezione delle query CalendarProvider2 rispetto agli argomenti dannosi.

FGS_BOOT_COMPLETED_RESTRICTIONS

Modifica ID: 296558535
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se questa opzione è abilitata, il background dei servizi in primo piano viene disattivato da BOOT_COMPLETED trasmissioni per tutti i tipi tranne:

Per scoprire di più su questa modifica, consulta la sezione della pagina relativa alle modifiche del comportamento di Android 15 su limitazioni relative ai BOOT_COMPLETED broadcast receiver che avviano servizi in primo piano.

FGS_INTRODUCE_TIME_LIMITS

Modifica ID: 317799821
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se abilitati, i servizi in primo piano di determinati tipi hanno un limite di tempo. Se il servizio in primo piano del tipo in violazione non viene interrotto entro il limite di tempo allocato, riceverà un callback utilizzando Service.onTimeout(int, int) e dovrà essere interrotto entro pochi secondi. Se un'app non riesce a farlo, verrà dichiarato un ANR.

Per saperne di più su questa modifica, consulta le sezioni nella guida Pagina 15 modifiche al comportamento sul comportamento di timeout per la sincronizzazione dei dati elaborazione dei contenuti multimediali i tipi di servizi in primo piano.

FGS_SAW_RESTRICTIONS

Modifica ID: 319471980
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se abilitato, disattiva l'avvio in background dei servizi in primo piano nella finestra di avviso di sistema per tutti i tipi, a meno che non sia già presente una finestra di overlay di sistema.

Per scoprire di più su questa modifica, consulta la sezione su Android 15 la pagina delle modifiche al comportamento degli utenti Limitazioni relative all'avvio di servizi in primo piano quando un'app conserva l'autorizzazione SYSTEM_ALERT_WINDOW.

FORCE_DISABLE_HEVC_SUPPORT

ID modifica: 174227820
Stato predefinito: disabilitato per tutte le app.

Forza la disattivazione di un'app in modo che non supporti la funzionalità dei contenuti multimediali HEVC. Le app devono dichiarare le funzionalità multimediali supportate nel proprio ma questo flag può essere usato per forzare l'installazione di un'app supportando HEVC, forzando di conseguenza la transcodifica durante l'accesso ai contenuti multimediali con codifica HEVC. L'impostazione di questo flag sostituisce le impostazioni predefinite a livello di sistema operativo per le app. È disattivato per impostazione predefinita, il che significa che le impostazioni predefinite del sistema operativo hanno la precedenza. Se sono attivati sia questo flag sia FORCE_ENABLE_HEVC_SUPPORT, il sistema operativo ignora entrambi i flag.

FORCE_ENABLE_HEVC_SUPPORT

ID modifica: 174228127
Stato predefinito: disabilitato per tutte le app.

Forza l'attivazione di un'app per supportare la funzionalità multimediale HEVC devono dichiarare le funzionalità multimediali supportate nel file manifest ma questo flag può essere usato per forzare l'app a supportare HEVC, evitando la transcodifica durante l'accesso a contenuti multimediali codificati in HEVC. L'impostazione di questo flag sostituisce le impostazioni predefinite a livello di sistema operativo per le app. È disattivato da predefinito, il che significa che le impostazioni predefinite del sistema operativo hanno la precedenza. Se sia questo flag sia FORCE_DISABLE_HEVC_SUPPORT sono abilitati, il sistema operativo ignora entrambi i flag.

FORCE_NON_RESIZE_APP

ID modifica: 181146395
Stato predefinito: disattivato per tutte le app.

Obbliga i pacchetti a cui viene applicato come non ridimensionabili.

FORCE_RESIZE_APP

Modifica ID: 174042936
Stato predefinito: disabilitato per tutte le app.

Forza i pacchetti a cui viene applicato a essere ridimensionabili. Abbiamo solo Consentire il ridimensionamento in modalità windowing a schermo intero, ma non forzando l'app in modalità multi-windowing ridimensionabile.

GWP_ASAN

Modifica ID: 145634846
Stato predefinito: disabilitato per tutte le app.

Consente il rilevamento di bug relativi alla memoria nativa campionata nelle app.

Per scoprire di più sull'utilizzo di GWP-ASan, consulta la guida a GWP-ASan.

IS_DEVICE_OWNER_USER_AWARE

Modifica ID: 307233716
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se l'opzione è attivata, il metodo isDeviceOwnerApp(String) utilizzerà l'utente contenuto nel contesto. Per le app che hanno come target Android 14 (livello API 34) o versioni precedenti, verrà utilizzato l'utente del processo di chiamata (Process.myUserHandle()).

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

ID modifica: 308670109
Stato predefinito: abilitato per le app che hanno come target Android 15 (livello API 35) o versioni successive.

Quando l'opzione è attiva, le app non possono più modificare lo stato globale o il criterio Non disturbare su un dispositivo (modificando le impostazioni utente o disattivando la modalità Non disturbare). Le app devono invece fornire un AutomaticZenRule, che il sistema combina in un criterio globale con lo schema esistente che prevede l'applicazione della norma più restrittiva.

Per scoprire di più su questa modifica, consulta la sezione della pagina relativa alle modifiche del comportamento di Android 15 su Modifiche relative a quando le app possono modificare lo stato globale della modalità Non disturbare.

NATIVE_HEAP_ZERO_INIT

Modifica ID: 178038272
Stato predefinito: disabilitato per tutte le app.

Attiva l'inizializzazione automatica a zero delle allocazioni di memoria heap nativa.

NATIVE_MEMTAG_ASYNC

Modifica ID: 145772972
Stato predefinito: disabilitato per tutte le app.

Attiva il controllo dei tag di memoria asincrono (ASYNC) in questo processo. Questo flag riguarda solo l'hardware che supporta l'estensione ARM Memory Tagging (MTE).

NATIVE_MEMTAG_SYNC

Modifica ID: 177438394
Stato predefinito: disabilitato per tutte le app.

Consente il controllo dei tag di memoria sincroni (SYNC) in questo processo. Questo flag riguarda solo l'hardware che supporta il tagging della memoria ARM Estensione (MTE). Se sono attive sia l'opzione NATIVE_MEMTAG_ASYNC sia questa opzione, quest'ultima ha la precedenza e MTE viene attivata in modalità SYNC.

OVERRIDE_ANY_ORIENTATION

Modifica ID: 265464455
Stato predefinito: disabilitato per tutte le app.

Se attivata, questa modifica consente di applicare le seguenti override dell'orientamento indipendentemente dall'orientamento richiesto dall'attività:

OVERRIDE_ANY_ORIENTATION_TO_USER

Modifica ID: 310816437
Stato predefinito: disabilitato per tutte le app.

Quando è abilitato, abilita SCREEN_ORIENTATION_USER, che sostituisce qualsiasi orientamento richiesto dall'attività. Le app con orientamento fisso possono essere ignorate per passare a schermo intero sui dispositivi con schermi di grandi dimensioni con ignoreOrientationRequest abilitato con questa override.

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

ID modifica: 314961188
Stato predefinito: disattivato per tutte le app.

Se abilitata, esclude i pacchetti a cui viene applicata la sostituzione dal trattamento di compatibilità della fotocamera in modalità di finestratura libera per le app con orientamento fisso.

Nella modalità windowing in formato libero, il trattamento di compatibilità emula la corsa su un dispositivo verticale modificando le caratteristiche della fotocamera in modalità letterbox e modificando le caratteristiche della fotocamera in base a ciò che le app si aspettano comunemente in un dispositivo verticale: rotazione del sensore a 90 e 270 gradi rispettivamente per la fotocamera posteriore e anteriore e l'impostazione della rotazione del display su 0.

Utilizza questo flag per disattivare il trattamento di compatibilità per le app che non rispondono bene al trattamento.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

ID modifica: 191514214
Stato predefinito: disattivato per tutte le app.

Quando è abilitata, questa modifica forza i pacchetti a cui viene applicata ignora il valore corrente di android:resizeableActivity nonché un SDK target uguale o precedente ad Android 6.0 (livello API 23) e considerare l'attività come non ridimensionabile. In questo caso, il valore della rotazione e del ritaglio della fotocamera dipende solo dalla compensazione necessaria in base alla rotazione corrente del display.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

Modifica ID: 189229956
Stato predefinito: disabilitato per tutte le app.

Se abilitata, questa modifica forza i pacchetti a cui viene applicata a ignorare il comportamento predefinito di rotazione e ritaglio della fotocamera e a restituire sempre CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

Modifica ID: 316897322
Stato predefinito: disabilitato per tutte le app.

Se questa opzione è attiva, gli utenti possono scegliere se acquisire una singola app o l'intero schermo quando avviano una sessione MediaProjection, sostituendo l'utilizzo di MediaProjectionConfig#createConfigForDefaultDisplay.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

Modifica ID: 266124927
Stato predefinito: disabilitato per tutte le app.

Attiva SCREEN_ORIENTATION_REVERSE_LANDSCAPE per l'app a cui viene applicato. A meno che non sia attivato anche OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_REVERSE_LANDSCAPE viene utilizzato solo quando l'attività specifica l'orientamento orizzontale. L'attivazione di questa modifica può aiutarti a testare il comportamento della tua app per rilevare le differenze tra i dispositivi in cui l'orientamento orizzontale corrisponde a Surface.ROTATION_90 e i dispositivi in cui corrisponde a Surface.ROTATION_270.

OVERRIDE_LAYOUT_IN_DISPLAY_CUTOUT_MODE

Modifica ID: 332679525
Stato predefinito: disabilitato per tutte le app.

Se abilitato, sostituisce il layout nel comportamento della modalità di ritaglio del display. Questo vale solo se non viene applicato l'edge-to-edge.

OVERRIDE_MIN_ASPECT_RATIO

Modifica ID: 174042980
Stato predefinito: disabilitato per tutte le app.

Questa modifica determina tutte le modifiche che forzano determinate proporzioni minime. L'attivazione di questa modifica consente di applicare i seguenti rapporti di aspetto minimo:

Quando questa modifica è abilitata per un pacchetto di app, l'aspetto minimo rapporto specificato nel file manifest dell'app viene sostituito al valore più grande proporzioni, a meno che il valore del file manifest dell'app non sia più elevato.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

ID modifica: 218959984
Stato predefinito: disattivato per tutte le app.

Se abilitata, sostituisce la limitazione delle proporzioni minime in modalità a schermo intero verticale per utilizzare tutto lo spazio dello schermo disponibile.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

ID modifica: 180326787
Stato predefinito: disabilitato per tutte le app.

Se è attivato anche OVERRIDE_MIN_ASPECT_RATIO, l'attivazione di questa modifica per un pacchetto imposta il formato immagine minimo dell'attività su un valore elevato, come definito da OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

ID modifica: 180326845
Stato predefinito: disabilitato per tutte le app.

Se è attivato anche OVERRIDE_MIN_ASPECT_RATIO, questa modifica per un pacchetto imposta il formato immagine minimo dell'attività su un valore medio come definito da OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_ONLY_FOR_CAMERA

ID modifica: 325586858
Stato predefinito: disabilitato per tutte le app.

Quando questa opzione è abilitata, limita i trattamenti che obbligano l'applicazione a una determinata proporzione minima in modo che vengano applicati solo quando un'app è connessa alla videocamera.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

Modifica ID: 203647190
Stato predefinito: attiva per tutte le app.

Quando OVERRIDE_MIN_ASPECT_RATIO è abilitata, questa modifica limita qualsiasi altra modifica che forza una proporzioni minime dell'attività a un determinato valore, ad esempio OVERRIDE_MIN_ASPECT_RATIO_LARGE e OVERRIDE_MIN_ASPECT_RATIO_MEDIUM: per anche le attività con orientamento verticale.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

Modifica ID: 236283604
Stato predefinito: disabilitato per tutte le app.

Se abilitata, questa modifica esclude i pacchetti applicati dalle limitazioni di ignoramento dell'orientamento che i produttori di dispositivi possono impostare.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

ID modifica: 265451093
Stato predefinito: disattivato per tutte le app.

Attiva SCREEN_ORIENTATION_NOSENSOR per l'app a cui viene applicato. A meno che non sia attivo anche OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_NOSENSOR viene utilizzato solo quando l'attività non specifica un altro orientamento fisso.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

Modifica ID: 265452344
Stato predefinito: disabilitato per tutte le app.

Attiva SCREEN_ORIENTATION_PORTRAIT per l'app a cui viene applicato. A meno che OVERRIDE_ANY_ORIENTATION è abilitato anche SCREEN_ORIENTATION_PORTRAIT, utilizzata solo quando l'attività non specifica nessun altro orientamento.

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

Modifica ID: 319400769
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Se questa opzione è abilitata, consente l'analisi delle intestazioni Content-Disposition conformi a RFC 6266. In particolare, questa operazione consente l'analisi dei valori filename* che possono utilizzare una codifica dei caratteri diversa.

RATE_LIMIT_TOASTS

ID modifica: 174840628
Stato predefinito: questa modifica non può essere attivata o disattivata. Viene registrato solo dal framework di compatibilità.

Consente di limitare la frequenza del numero di chiamate Toast.show() per evitare di sovraccaricare l'utente con troppi avvisi popup in un periodo di tempo limitato. Qualsiasi tentativo di mostrare più toast di quanto consentito in un un determinato periodo di tempo comporta l'eliminazione del toast.

STREAM_INT_DIFFERS_FROM_NEXT_INT

Modifica ID: 308103782
Stato predefinito: attivato per le app destinate ad Android 15 (livello API 35) o versioni successive.

Quando vengono attivati, i metodi Random.ints() ora restituiscono un valore sequenza di numeri diversa rispetto a Random.nextInt() più efficaci. Questo deriva dalle modifiche https://bugs.openjdk.org/browse/JDK-8301574

Per scoprire di più su questa modifica, consulta la sezione su Android 15 la pagina delle modifiche al comportamento degli utenti Modifiche all'API OpenJDK.

USE_EXPERIMENTAL_COMPONENT_ALIAS

ID modifica: 196254758
Stato predefinito: disattivato per tutte le app.

Se è attivato, il sistema consente al pacchetto "android" di utilizzare gli alias dei componenti.

USE_NEW_ISO_LOCALE_CODES

ID modifica: 291868760
Stato predefinito: abilitato per le app che hanno come target Android 15 (livello API 35) o versioni successive.

Quando l'opzione è attiva, i codici lingua per ebraico, yiddish e indonesiano non vengono più convertiti nelle loro forme obsolete (ebraico: iw, yiddish: ji e indonesiano: in).

Per scoprire di più su questa modifica, consulta la sezione su Android 15 la pagina delle modifiche al comportamento degli utenti Modifiche all'API OpenJDK.