Modifiche al framework di compatibilità (Android 14)

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

In questa pagina vengono descritte le modifiche attivabili che fanno parte del framework di compatibilità in Android 14 (livello API 34). Utilizza questo elenco insieme alle opzioni per sviluppatori e ai comandi ADB per testare la tua app ed eseguirne il debug mentre ti prepari a supportare e scegliere come target Android 14.

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

  • Testa le modifiche target senza modificare effettivamente il valore targetSdkVersion dell'app. Puoi utilizzare i pulsanti di attivazione/disattivazione per forzare l'attivazione di modifiche di comportamenti mirati specifici e valutare l'impatto sull'app esistente.
  • Concentra i test solo su modifiche specifiche. Invece di dover gestire tutte le modifiche mirate contemporaneamente, i pulsanti di attivazione/disattivazione ti consentono di disabilitare tutte le modifiche scelte come target, tranne quelle su cui vuoi eseguire il test.
  • Gestisci i pulsanti di attivazione/disattivazione tramite ADB. Puoi utilizzare i comandi adb per abilitare e disabilitare le modifiche attivabili nel tuo ambiente di test automatico.
  • Esegui il debug più rapidamente utilizzando gli ID delle modifiche standard. Le modifiche attivabili hanno ciascuna un ID e un nome univoci che possono essere utilizzati per eseguire rapidamente il debug della causa principale nell'output del log.

Per informazioni dettagliate sull'utilizzo degli strumenti per ognuno 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à in Android 14.

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

Modifiche attivabili nel framework di compatibilità in Android 14

ACCESS_SHARED_IDENTITY

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

Concede l'accesso all'identità dell'app in fase di avvio se l'app ha attivato la condivisione dell'identità avviando questa attività con un'istanza di ActivityOptions su cui ActivityOptions.setShareIdentityEnabled(boolean) è stata richiamata con il valore true o se l'UID dell'attività avviata è uguale a quello dell'app in fase di avvio. Quando questa modifica è abilitata e uno di questi requisiti viene soddisfatto, l'attività può accedere all'UID e al nome del pacchetto dell'app di avvio rispettivamente con Activity.getLaunchedFromUid() e Activity.getLaunchedFromPackage().

ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES

Modifica ID: 258236856
Stato predefinito: attivo per le app destinate ad Android 14 (livello API 34) o versioni successive.

Se questa opzione è abilitata, attiva un messaggio "L'applicazione non risponde" (ANR) quando le app sono lente a rispondere su API e funzionalità da Android 13 (livello API 33) o versioni precedenti.

AUTHORITY_ACCESS_CHECK_CHANGE_ID

Modifica ID: 207133734
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, consente il controllo dell'accesso dell'autorità per l'UID di chiamata su tutte le API correlate alla sincronizzazione.

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

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

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_SENDER

Modifica ID: 244637991
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Quando un'app invia un PendingIntent utilizzando PendingIntent#send() o metodi simili, ora l'app deve essere attivata se vuole concedere i propri privilegi di avvio di attività in background per avviare l'intent in attesa.

Per saperne di più su questa modifica, consulta la sezione nella pagina delle modifiche del comportamento di Android 14 relativa alle limitazioni aggiuntive relative all'avvio di attività in background.

DETACH_THROWS_ISE_ONLY

Modifica ID: 236825255
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Flag per limitare l'eccezione corretta generata da #detachImage.

#detachImage è documentato come generazione IllegalStateException in caso di errore; un metodo helper nativo per questo metodo ha implementato RuntimeException se la superficie è stata abbandonata durante lo scollegamento di Image.

Questo comportamento di eccezione precedentemente non documentato continua fino ad Android 13 (livello API 33).

Dopo Android 13 (livello API 33), il metodo helper nativo genera solo IllegalStateExceptions in conformità con la documentazione.

Se questa modifica è abilitata, #detachImage genera un IllegalStateException solo se si verifica un errore durante lo scollegamento dell'immagine. Il comportamento rimane invariato per le app che hanno come target Android 13 (livello API 33) e versioni precedenti.

DOWNSCALED

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

Questa modifica determina tutte le modifiche relative al downscaling del buffer per app. Se abiliti questa modifica, è possibile applicare i seguenti fattori di scalabilità:

Quando questa modifica viene abilitata per un pacchetto dell'app, quest'ultima viene ridimensionata forzatamente al fattore di scalabilità abilitato più alto. Ad esempio, l'80% viene utilizzato se sono abilitate entrambe le opzioni 80% e 70% (DOWNSCALE_80 e DOWNSCALE_70). Quando sia questa modifica sia DOWNSCALED_INVERSE sono abilitati, DOWNSCALED_INVERSE ha la precedenza e il fattore di scalabilità viene applicato invertito.

DOWNSCALED_INVERSE

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

Questa modifica determina tutte le modifiche al downscaling inverso del buffer per app. Se abiliti questa modifica, i seguenti fattori di scalabilità possono essere applicati invertiti (ovvero la risoluzione viene migliorata):

Quando questa modifica viene abilitata per un pacchetto dell'app, quest'ultima viene ridimensionata forzatamente al fattore di scalabilità abilitato più basso. Ad esempio, l'80% viene utilizzato se sono abilitati sia l'80% che il 70% (DOWNSCALE_80 e DOWNSCALE_70) perché, se applicato al contrario, un fattore di scalabilità dell'80% equivale al 125%, inferiore al 142,86% di scalabilità applicato quando viene applicato invertito un fattore di scalabilità del 70%. Quando sia questa modifica sia DOWNSCALED sono abilitati, DOWNSCALED_INVERSE ha la precedenza e il fattore di scalabilità viene applicato invertito.

DOWNSCALE_30

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 30% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 333,33% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_35

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 35% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 285,71% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_40

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 40% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 250% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_45

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 45% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere 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 è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 50% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia 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 è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 55% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 181,82% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_60

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 60% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 166,67% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_65

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 65% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 153,85% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_70

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 70% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 142,86% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_75

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 75% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 133,33% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_80

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con l'80% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 125% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_85

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con l'85% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 117,65% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_90

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

Se è abilitato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con il 90% della risoluzione verticale e orizzontale del display reale. Se è abilitato anche DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto obbliga l'app a presumere che sia in esecuzione su un display con l'111,11% della risoluzione verticale e orizzontale del display reale.

ENABLE_PLATFORM_MDNS_BACKEND

Modifica ID: 270306772
Stato predefinito: attivo per le app destinate ad Android 14 (livello API 34) o versioni successive.

Le app destinate ad Android 14 o versioni successive utilizzano come backend un'implementazione mDNS integrata nella piattaforma, mentre le app destinate alle versioni precedenti continuano a utilizzare un backend Network Service Discovery (NSD) legacy (con un daemon nativo legacy come backend NsdManager).

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

Modifica ID: 266524688
Stato predefinito: attivo per le app destinate ad Android 14 (livello API 34) o versioni successive.

Il controllo delle funzionalità autocertificate è attivo per le app che hanno come target Android 14 o versioni successive. Per ulteriori dettagli, consulta la pagina NetworkCapabilities.

ENFORCE_PACKAGE_VISIBILITY_FILTERING

Modifica ID: 154726397
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, le app devono dichiarare le esigenze di visibilità dei pacchetti nel file manifest per poter accedere alle API AccountManager.

ENFORCE_READ_ONLY_JAVA_DCL

Modifica ID: 218865702
Stato predefinito: attivo per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, è necessario che tutti i file caricati dinamicamente siano contrassegnati come di sola lettura. In questo modo, i file caricati dinamicamente non vengono sovrascritti inaspettatamente da utenti malintenzionati.

Per scoprire di più su questa modifica, consulta la sezione nella pagina Modifiche del comportamento di Android 14 sul caricamento di codice dinamico più sicuro.

ENFORCE_STRICT_QUERY_BUILDER

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

Se abilitata, SQLiteQueryBuilder verifica tutte le selezioni di query CalendarProvider2 sulla base di argomenti dannosi.

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

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

Le sveglie esatte in attesa di un callback AlarmManager.OnAlarmListener vengono eliminate quando l'app per le chiamate passa allo stato memorizzato nella cache.

Per scoprire di più sulle modifiche alle sveglie esatte in Android 14, visita la pagina Programmare sveglie esatte negate per impostazione predefinita.

FGS_TYPE_CHECK_FOR_INSTANT_APPS

Modifica ID: 261055255
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Se abilitate, le app istantanee devono specificare tipi di servizi in primo piano appropriati per tutti i servizi dichiarati nel file manifest dell'app.

Per saperne di più su questa modifica, consulta la pagina che descrive le modifiche ai tipi di servizi in primo piano.

FGS_TYPE_NONE_DEPRECATION_CHANGE_ID

Modifica ID: 255042465
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Se questa opzione è attiva, le app che hanno come target Android 14 (livello API 34) e versioni successive che avviano un servizio in primo piano utilizzando il tipo FOREGROUND_SERVICE_TYPE_NONE deprecato generano un avviso nel log.

Per saperne di più su questa modifica, consulta la pagina che descrive le modifiche ai tipi di servizi in primo piano.

FGS_TYPE_NONE_DISABLED_CHANGE_ID

Modifica ID: 255038118
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Se questa opzione è attiva, le app che hanno come target Android 14 (livello API 34) e versioni successive che avviano un servizio in primo piano utilizzando il tipo FOREGROUND_SERVICE_TYPE_NONE deprecato generano un'eccezione.

Per saperne di più su questa modifica, consulta la pagina che descrive le modifiche ai tipi di servizi in primo piano.

FGS_TYPE_PERMISSION_CHANGE_ID

Modifica ID: 254662522
Stato predefinito: attivo per le app destinate ad Android 14 (livello API 34) o versioni successive.

Se attivi questa opzione, le app che hanno come target Android 14 (livello API 34) e versioni successive che avviano un servizio in primo piano senza le autorizzazioni richieste associate al tipo di quel servizio in primo piano generano un SecurityException.

Per saperne di più su questa modifica, consulta la pagina che descrive le modifiche ai tipi di servizi in primo piano.

FORCE_DISABLE_HEVC_SUPPORT

Modifica ID: 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 file manifest, ma questo flag può essere utilizzato per forzare un'app a non supportare HEVC, forzando di conseguenza la transcodifica durante l'accesso ai contenuti multimediali codificati in HEVC. L'impostazione di questo flag sostituisce eventuali valori predefiniti a livello di sistema operativo per le app. È disabilitata per impostazione predefinita, il che significa che le impostazioni predefinite del sistema operativo hanno la precedenza. Se sia questo flag sia FORCE_ENABLE_HEVC_SUPPORT sono abilitati, il sistema operativo ignora entrambi i flag.

FORCE_ENABLE_HEVC_SUPPORT

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

Forza l'abilitazione di un'app per supportare la funzionalità multimediale HEVC Le app devono dichiarare le funzionalità multimediali supportate nel file manifest, ma questo flag può essere utilizzato per forzare un'app a supportare HEVC, evitando così la transcodifica quando si accede ai contenuti multimediali codificati in HEVC. L'impostazione di questo flag sostituisce qualsiasi impostazione predefinita a livello di sistema operativo per le app. È disabilitata per impostazione predefinita, 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

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

Obbliga i pacchetti a cui viene applicato come non ridimensionabili.

FORCE_RESIZE_APP

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

Forza il ridimensionamento dei pacchetti a cui viene applicato. È consentito il ridimensionamento solo in modalità di 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 di GWP-ASan.

IMPLICIT_INTENTS_ONLY_MATCH_EXPORTED_COMPONENTS

Modifica ID: 229362273
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, i componenti devono essere esportati per poter essere richiamati tramite intent impliciti. Se un componente non viene esportato e richiamato, viene rimosso dall'elenco dei destinatari. Questo vale in particolare per le attività e le trasmissioni.

Per scoprire di più su questa modifica, consulta la sezione relativa alle limitazioni relative agli intent impliciti e in attesa nella pagina Modifiche del comportamento di Android 14.

Modifica ID: 266201607
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, le app devono chiedere all'utente di dare il consenso prima di ogni MediaProjection sessione di acquisizione.

Per saperne di più su questa modifica, consulta la sezione nella pagina delle modifiche del comportamento di Android 14 relativa a come è richiesto il consenso dell'utente per ogni MediaProjection sessione di acquisizione.

NATIVE_HEAP_ZERO_INIT

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

Abilita l'inizializzazione automatica zero delle allocazioni della 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 di tagging della memoria ARM (MTE).

NATIVE_MEMTAG_SYNC

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

Consente il controllo dei tag di memoria sincrona (SYNC) in questo processo. Questo flag riguarda solo l'hardware che supporta l'estensione di tagging della memoria ARM (MTE). Se NATIVE_MEMTAG_ASYNC e questa opzione sono abilitati, questa opzione ha la precedenza e l'MTE è abilitato in modalità SYNC.

OVERRIDE_ANY_ORIENTATION

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

Quando abilitata, questa modifica consente di applicare le seguenti sostituzioni dell'orientamento indipendentemente dall'orientamento richiesto dall'attività:

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

Se abilitata, questa modifica obbliga i pacchetti a cui viene applicata a ignorare il valore attuale di android:resizeableActivity e l'SDK target uguale o inferiore a M e a considerare l'attività come non ridimensionabile. In questo caso, il valore di rotazione e ritaglio della fotocamera dipende solo dalla compensazione necessaria considerando l'attuale rotazione del display.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

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

Quando è abilitata, questa modifica obbliga i pacchetti a cui viene applicata a sostituire il comportamento predefinito di rotazione e ritaglio della fotocamera e a restituire sempre CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

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

Attiva SCREEN_ORIENTATION_REVERSE_LANDSCAPE per l'app a cui è applicato. A meno che non sia abilitato anche OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_REVERSE_LANDSCAPE viene utilizzato solo quando l'attività specifica l'orientamento orizzontale. Se attivi questa modifica, puoi testare il comportamento della tua app per rilevare eventuali differenze tra i dispositivi in cui l'orientamento orizzontale corrisponde a Surface.ROTATION_90 e quelli in cui l'orientamento orizzontale corrisponde a Surface.ROTATION_270.

OVERRIDE_MIN_ASPECT_RATIO

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

Questa modifica determina tutte le modifiche che forzano determinate proporzioni minime. L'attivazione di questa modifica consente l'applicazione delle seguenti proporzioni minime:

Quando questa modifica viene abilitata per un pacchetto dell'app, il formato minimo specificato nel file manifest dell'app viene sostituito al formato abilitato più grande, a meno che il valore manifest dell'app non sia superiore.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

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

Quando questa opzione è attiva, sostituisce la limitazione relativa alle proporzioni minime in modalità a schermo intero verticale per utilizzare tutto lo spazio disponibile sullo schermo.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

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

Se è abilitato anche OVERRIDE_MIN_ASPECT_RATIO, l'attivazione di questa modifica per un pacchetto imposta le proporzioni minime dell'attività su un valore elevato, come definito da OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

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

Se è abilitato anche OVERRIDE_MIN_ASPECT_RATIO, l'attivazione di questa modifica per un pacchetto imposta le proporzioni minime dell'attività su un valore medio come definito da OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

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

Quando è abilitato anche OVERRIDE_MIN_ASPECT_RATIO, questa modifica limita qualsiasi altra modifica che forza le proporzioni minime di un'attività a un determinato valore, come OVERRIDE_MIN_ASPECT_RATIO_LARGE e OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, alle attività che hanno anche un orientamento verticale.

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

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

Se attivata, questa modifica esclude i pacchetti applicati dalle limitazioni di orientamento che possono essere impostate dai produttori dei dispositivi.

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

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

Attiva SCREEN_ORIENTATION_NOSENSOR per l'app a cui è applicato. A meno che non sia abilitato anche OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_NOSENSOR viene utilizzato solo quando l'attività non specifica altri orientamenti fissi.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

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

Attiva SCREEN_ORIENTATION_PORTRAIT per l'app a cui è applicato. A meno che non sia abilitato anche OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_PORTRAIT viene utilizzato solo quando l'attività non specifica altri orientamenti fissi.

RATE_LIMIT_TOASTS

Modifica ID: 174840628
Stato predefinito: questa modifica non può essere attivata/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 toast in un periodo di tempo limitato. Qualsiasi tentativo di mostrare più toast di quanto consentito in un determinato periodo di tempo comporta l'eliminazione del toast.

REJECT_NEGATIVE_NETWORK_ESTIMATES

Modifica ID: 253665015
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Se abilitata, questa opzione richiede che i byte di rete stimati non siano negativi.

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

Modifica ID: 241104082
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, il job di hosting deve specificare un vincolo di rete se l'elemento JobWorkItem incluso indica l'utilizzo della rete.

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

Modifica ID: 271850009
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, le app devono specificare le autorizzazioni INTERNET e ACCESS_NETWORK_STATE quando si pianifica un job con un vincolo di connettività.

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

Modifica ID: 255371817
Stato predefinito: attivato per le app destinate ad Android 14 (livello API 34) o versioni successive.

Per le app che hanno come target Android 14 (livello API 34) e versioni successive, il sistema genera un'eccezione se un'app non implementa correttamente tutte le API Data Transfer necessarie quando specifichi un job di trasferimento di dati avviato dall'utente.

Per saperne di più su questa modifica, consulta la pagina che descrive come eseguire la migrazione dei servizi in primo piano in job di trasferimento di dati avviati dall'utente.

USE_EXPERIMENTAL_COMPONENT_ALIAS

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

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