Modifiche al framework di compatibilità (Android 14)

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

Questa pagina descrive le modifiche attivabili/disattivabili che fanno parte del framework di compatibilità in Android 14 (livello API 34). Utilizza questo elenco insieme alle opzioni sviluppatore e ai comandi ADB per testare ed eseguire il debug della tua app 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 mirate senza modificare effettivamente l'attributo targetSdkVersion dell'app. Puoi utilizzare i pulsanti di attivazione/disattivazione per forzare l'attivazione di modifiche specifiche del comportamento target per valutare l'impatto sulla tua app esistente.
  • Concentra i test solo su modifiche specifiche. Anziché dover gestire tutte le modifiche mirate contemporaneamente, i pulsanti di attivazione/disattivazione ti consentono di disattivare tutte le modifiche mirate, 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ù velocemente utilizzando gli ID modifica standard. Ogni modifica attivabile/disattivabile ha un ID univoco e un nome 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/disattivabili incluse nel framework di compatibilità di Android 14.

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

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

ACCESS_SHARED_IDENTITY

ID modifica: 259743961
Stato predefinito: attivato per tutte le app.

Concede l'accesso all'identità dell'app di avvio se l'app ha attivato la condivisione della propria identità avviando questa attività con un'istanza di ActivityOptions su cui è stato richiamato ActivityOptions.setShareIdentityEnabled(boolean) con un valore di true o se l'UID dell'attività avviata è lo stesso dell'app di avvio. Quando questa modifica viene attivata 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

ID modifica: 258236856
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

Se l'opzione è attiva, attiva un messaggio "Applicazione non risponde" (ANR) quando le app rispondono lentamente alle API e alle funzionalità di Android 13 (livello API 33) o versioni precedenti.

AUTHORITY_ACCESS_CHECK_CHANGE_ID

ID modifica: 207133734
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

CAMERA_MIC_INDICATORS_NOT_PRESENT

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

Indica che questo 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

ID modifica: 244637991
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

Per scoprire di più su questa modifica, consulta la sezione della pagina Modifiche del comportamento di Android 14 relativa alle limitazioni aggiuntive sull'avvio di attività in background.

DETACH_THROWS_ISE_ONLY

ID modifica: 236825255
Stato predefinito: abilitato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

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

Questo comportamento delle eccezioni, 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.

Quando questa modifica è abilitata, #detachImage genera un IllegalStateException solo se si verificano errori 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

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

Questa modifica è il gatekeeper di tutte le modifiche di riduzione dei buffer per app. L'attivazione di questa modifica consente di applicare i seguenti fattori di scalabilità:

Quando questa modifica viene attivata per un pacchetto applicativo, l'app viene ridimensionata forzatamente al fattore di scalabilità più alto attivato. Ad esempio, se sono attivati sia l'80% che il 70% (DOWNSCALE_80 e DOWNSCALE_70), viene utilizzato l'80%. Quando sono attivate sia questa modifica sia DOWNSCALED_INVERSE, DOWNSCALED_INVERSE ha la precedenza e il fattore di scalabilità viene applicato in modo inverso.

DOWNSCALED_INVERSE

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

Questa modifica è il gatekeeper di tutte le modifiche di downscaling inverso del buffer per app. L'attivazione di questa modifica consente di applicare i seguenti fattori di scalabilità in modo inverso (ovvero, la risoluzione viene aumentata):

Quando questa modifica viene attivata per un pacchetto applicativo, l'app viene ridimensionata forzatamente al fattore di scalabilità più basso attivato. Ad esempio, viene utilizzato l'80% se sono attivati sia l'80% sia il 70% (DOWNSCALE_80 e DOWNSCALE_70) perché, se applicato in modo inverso, un fattore di scalabilità dell'80% equivale al 125%, che è inferiore alla scalabilità del 142,86% applicata quando si applica in modo inverso un fattore di scalabilità del 70%. Quando sono attivate sia questa modifica sia DOWNSCALED, DOWNSCALED_INVERSE ha la precedenza e il fattore di scalabilità viene applicato in modo inverso.

DOWNSCALE_30

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

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

DOWNSCALE_35

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

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

DOWNSCALE_40

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

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

DOWNSCALE_45

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

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

DOWNSCALE_50

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

Se è attivata anche l'opzione DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con il 50% della risoluzione verticale e orizzontale del display reale. Se è attivata anche l'opzione DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con il 200% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_55

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

Se è abilitato anche DOWNSCALED, l'abilitazione di questa modifica per un pacchetto forza l'app ad assumere che sia in esecuzione su un display con il 55% della risoluzione verticale e orizzontale del display reale. Se è attivata anche l'opzione DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con il 181,82% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_60

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

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

DOWNSCALE_65

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

Se è attivato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con il 65% della risoluzione verticale e orizzontale del display reale. Se è attivata anche l'opzione DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto forza l'app ad assumere che sia in esecuzione su un display con il 153,85% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_70

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

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

DOWNSCALE_75

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

Se è attivata anche l'opzione DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app ad assumere che sia in esecuzione su un display con il 75% della risoluzione verticale e orizzontale del display reale. Se è attivata anche l'opzione DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre 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: disattivato per tutte le app.

Se è attivato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con l'80% della risoluzione verticale e orizzontale del display reale. Se è abilitata anche l'opzione DOWNSCALED_INVERSE, l'abilitazione di questa modifica per un pacchetto forza l'app ad assumere che sia in esecuzione su un display con il 125% della risoluzione verticale e orizzontale del display reale.

DOWNSCALE_85

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

Se è attivata anche l'opzione DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con l'85% della risoluzione verticale e orizzontale del display reale. Se è attivata anche l'opzione DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto forza l'app ad assumere 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: disattivato per tutte le app.

Se è attivato anche DOWNSCALED, l'attivazione di questa modifica per un pacchetto forza l'app ad assumere che sia in esecuzione su un display con il 90% della risoluzione verticale e orizzontale del display reale. Se è attivata anche l'opzione DOWNSCALED_INVERSE, l'attivazione di questa modifica per un pacchetto forza l'app a presupporre che sia in esecuzione su un display con il 111,11% della risoluzione verticale e orizzontale del display reale.

ENABLE_PLATFORM_MDNS_BACKEND

ID modifica: 270306772
Stato predefinito: abilitato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

ENABLE_SELF_CERTIFIED_CAPABILITIES_DECLARATION

ID modifica: 266524688
Stato predefinito: abilitato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

ENFORCE_PACKAGE_VISIBILITY_FILTERING

ID modifica: 154726397
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

ENFORCE_READ_ONLY_JAVA_DCL

ID modifica: 218865702
Stato predefinito: attivato per le app che hanno come target 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, si impedisce che i file caricati dinamicamente vengano sovrascritti inaspettatamente da malintenzionati.

Per scoprire di più su questa modifica, consulta la sezione relativa al caricamento dinamico del codice più sicuro nella pagina delle modifiche del comportamento di Android 14.

ENFORCE_STRICT_QUERY_BUILDER

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

Se abilitato, SQLiteQueryBuilder verifica tutte le selezioni delle query CalendarProvider2 rispetto ad argomenti dannosi.

EXACT_LISTENER_ALARMS_DROPPED_ON_CACHED

ID modifica: 265195908
Stato predefinito: attivato per tutte le app.

Le sveglie esatte che prevedono un callback AlarmManager.OnAlarmListener vengono ignorate quando l'app di chiamate entra in uno stato memorizzato nella cache.

Per scoprire di più sulle modifiche alle sveglie esatte in Android 14, consulta La programmazione di sveglie esatte è negata per impostazione predefinita.

FGS_TYPE_CHECK_FOR_INSTANT_APPS

ID modifica: 261055255
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

Per scoprire 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

ID modifica: 255042465
Stato predefinito: attivato per le app che hanno come target 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 scoprire 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

ID modifica: 255038118
Stato predefinito: attivato per le app che hanno come target 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 scoprire di più su questa modifica, consulta la pagina che descrive le modifiche ai tipi di servizi in primo piano.

FGS_TYPE_PERMISSION_CHANGE_ID

ID modifica: 254662522
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

Se l'opzione è attiva, 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 servizio in primo piano generano un'eccezione SecurityException.

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

FORCE_DISABLE_HEVC_SUPPORT

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

Disattiva forzatamente il supporto della funzionalità multimediale HEVC da parte di un'app. Le app devono dichiarare le funzionalità multimediali supportate nel loro manifest, ma questo flag può essere utilizzato per forzare un'app a non supportare HEVC, forzando quindi la transcodifica durante l'accesso ai contenuti multimediali codificati in HEVC. L'impostazione di questo flag esegue l'override di qualsiasi impostazione predefinita 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 vengono 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: disattivato per tutte le app.

Forza l'attivazione di un'app per supportare le funzionalità multimediali HEVC. Le app devono dichiarare le funzionalità multimediali supportate nel proprio manifest, ma questo flag può essere utilizzato per forzare un'app a supportare HEVC, evitando così la transcodifica durante l'accesso ai contenuti multimediali codificati in HEVC. L'impostazione di questo flag sostituisce qualsiasi impostazione predefinita a livello di sistema operativo per le app. È disattivato per impostazione predefinita, il che significa che le impostazioni predefinite del sistema operativo avranno la precedenza. Se vengono attivati sia questo flag sia FORCE_DISABLE_HEVC_SUPPORT, il sistema operativo li ignora entrambi.

FORCE_NON_RESIZE_APP

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

Forza la non ridimensionabilità dei pacchetti a cui viene applicato.

FORCE_RESIZE_APP

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

Forza il ridimensionamento dei pacchetti a cui viene applicato. Consentiamo il ridimensionamento solo in modalità di visualizzazione a finestre a schermo intero, ma non forziamo l'app in modalità multi-finestra ridimensionabile.

GWP_ASAN

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

Consente il rilevamento di bug della 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

ID modifica: 229362273
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

Per le app destinate ad 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 ricevitori. Questo vale in particolare per le attività e le trasmissioni.

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

ID modifica: 266201607
Stato predefinito: attivata per le app che hanno come target 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 sessione di acquisizione di MediaProjection.

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

NATIVE_HEAP_ZERO_INIT

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

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

NATIVE_MEMTAG_ASYNC

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

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

NATIVE_MEMTAG_SYNC

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

Attiva il controllo sincrono (SYNC) dei tag di memoria in questo processo. Questo flag influisce solo sull'hardware che supporta l'estensione ARM Memory Tagging (MTE). Se sono attivate sia NATIVE_MEMTAG_ASYNC sia questa opzione, quest'ultima ha la precedenza e MTE viene attivata in modalità SYNC.

OVERRIDE_ANY_ORIENTATION

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

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

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

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

Se attivata, questa modifica forza i pacchetti a cui viene applicata a ignorare il valore corrente 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 della rotazione e del ritaglio della fotocamera dipende solo dalla compensazione necessaria considerando la rotazione corrente del display.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

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

Se abilitata, questa modifica forza i pacchetti a cui viene applicata a eseguire l'override del comportamento predefinito di rotazione e ritaglio della fotocamera e a restituire sempre CaptureRequest.SCALER_ROTATE_AND_CROP_NONE.

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

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

Attiva SCREEN_ORIENTATION_REVERSE_LANDSCAPE per l'app a cui viene 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. L'attivazione di questa modifica può aiutarti a testare il comportamento della tua app per verificare 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_MIN_ASPECT_RATIO

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

Questa modifica è il gatekeeper di tutte le modifiche che impongono un determinato formato minimo. L'attivazione di questa modifica consente di applicare le seguenti proporzioni minime:

Quando questa modifica viene attivata per un pacchetto applicativo, le proporzioni minime indicate nel file manifest dell'app vengono sostituite con le proporzioni massime attivate, a meno che il valore del file manifest dell'app non sia superiore.

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

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

Se attivata, esegue l'override della limitazione delle proporzioni minime in modalità a schermo intero verticale per utilizzare tutto lo spazio disponibile sullo schermo.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

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

Quando è 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

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

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

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

ID modifica: 203647190
Stato predefinito: attivato per tutte le app.

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

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

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

Se questa opzione è attiva, questa modifica esclude i pacchetti a cui viene applicata dalle limitazioni di orientamento ignorate 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 abilitato anche OVERRIDE_ANY_ORIENTATION, SCREEN_ORIENTATION_NOSENSOR viene utilizzato solo quando l'attività non specifica nessun altro orientamento fisso.

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

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

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

RATE_LIMIT_TOASTS

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

Attiva la limitazione di frequenza per il 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 quelli consentiti in un determinato periodo di tempo comporta l'eliminazione del toast.

REJECT_NEGATIVE_NETWORK_ESTIMATES

ID modifica: 253665015
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

Se abilitato, richiede che i byte di rete stimati siano non negativi.

REQUIRE_NETWORK_CONSTRAINT_FOR_NETWORK_JOB_WORK_ITEMS

ID modifica: 241104082
Stato predefinito: attivato per le app che hanno come target 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 il job di hosting specifichi un vincolo di rete se l'elemento JobWorkItem incluso indica l'utilizzo della rete.

REQUIRE_NETWORK_PERMISSIONS_FOR_CONNECTIVITY_JOBS

ID modifica: 271850009
Stato predefinito: attivato per le app che hanno come target Android 14 (livello API 34) o versioni successive.

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

THROW_ON_INVALID_DATA_TRANSFER_IMPLEMENTATION

ID modifica: 255371817
Stato predefinito: attivato per le app che hanno come target 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 di trasferimento di dati necessarie quando specifica un job di trasferimento di dati avviato dall'utente.

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

USE_EXPERIMENTAL_COMPONENT_ALIAS

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

Se l'opzione è attiva, il sistema consente al pacchetto "android" di utilizzare gli alias dei componenti.