Cambios en el marco de compatibilidad (Android 13)

Figura 1: La pantalla Cambios de compatibilidad con apps de las opciones para desarrolladores muestra los cambios que puedes activar o desactivar.

En esta página, se describen los cambios que se pueden activar o desactivar y que forman parte del marco de compatibilidad de Android 13 (nivel de API 33). Usa esta lista, junto con las opciones para desarrolladores y los comandos de ADB, para probar y depurar tu app mientras te preparas para la compatibilidad y la orientación a Android 13.

A continuación, te mostramos algunas de las acciones que puedes realizar con las herramientas del marco de compatibilidad:

  • Probar los cambios orientados sin cambiar realmente la targetSdkVersion de la app. Puedes usar los botones de activación y desactivación para forzar cambios de comportamiento orientados específicos a fin de evaluar el impacto en tu app existente.
  • Enfocar tus pruebas solo a cambios específicos. En lugar de tener que abordar todos los cambios orientados a la vez, los botones de activación y desactivación te permiten inhabilitar todos los cambios orientados, excepto los que deseas probar.
  • Administrar los cambios que se pueden activar y desactivar mediante adb. Puedes usar comandos ADB para habilitar o inhabilitar los cambios que se pueden activar o desactivar en tu entorno de prueba automatizado.
  • Depurar más rápido con los ID de cambio estándar. Cada cambio que se puede activar y desactivar tiene un ID y un nombre únicos que puedes usar para depurar rápidamente la causa raíz en el resultado del registro.

Si quieres obtener más información sobre cómo usar las herramientas para cada uno de estos casos de uso, consulta Herramientas del marco de compatibilidad.

Cambios de comportamiento incluidos en el marco de compatibilidad

En la lista de esta sección, se describen los cambios que se pueden activar o desactivar y que se incluyen en el marco de compatibilidad de Android 13.

Puedes filtrar la lista de cambios por Estado predeterminado.

Cambios que se pueden activar o desactivar en el marco de compatibilidad de Android 13

ACCOUNT_ACCESS_CHECK_CHANGE_ID

ID del cambio: 201794303
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, se puede verificar el acceso a la cuenta para el UID de llamada en todas las APIs relacionadas con la sincronización.

ALLOW_COPY_SOLID_COLOR_VIEW

ID del cambio: 205907456
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, permite que una app reciba la devolución de llamada SplashScreen.OnExitAnimationListener.onSplashScreenExit(SplashScreenView), incluso cuando la pantalla de presentación solo muestra una luz continua de color.

ALLOW_SECURE_ACTIVITY_DISPLAY_ON_REMOTE_DEVICE

ID del cambio: 201712607
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, permite que se muestre una actividad segura en dispositivos remotos si es necesario.

ALWAYS_SANDBOX_DISPLAY_APIS

ID del cambio: 185004937
Estado predeterminado: Inhabilitado para todas las apps.

Fuerza los paquetes a los que se aplica, de modo que siempre se aplique la zona de pruebas de la API de Display, independientemente del modo de renderización en ventanas. Las API de Display siempre proporcionarán los límites de la app.

Si deseas obtener más información sobre este cambio, consulta Display#getRealSize y getRealMetrics: baja y zona de pruebas.

BORINGLAYOUT_FALLBACK_LINESPACING

ID del cambio: 210923482
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, habilita el interlineado de texto alternativo (altura de la línea) para BoringLayout.

CALL_REDIRECTION_AUDIO_MODES

ID del cambio: 189472651
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, permite el uso de modos audio para el redireccionamiento del audio de llamadas.

CAMERA_MIC_INDICATORS_NOT_PRESENT

ID del cambio: 162547999
Estado predeterminado: Inhabilitado para todas las apps.

Determina que este dispositivo admite indicadores de cámara y micrófono. Será false si está presente porque el método CompatChanges#isChangeEnabled muestra true si el ID de cambio no está presente.

CLEAR_SHOW_FORCED_FLAG_WHEN_LEAVING

ID del cambio: 214016041
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, evita que la marca SHOW_FORCED tenga efecto, a menos que el llamador esté enfocado en ese momento.

DEFER_BOOT_COMPLETED_BROADCAST_CHANGE_ID

ID del cambio: 203704822
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, difieren las transmisiones LOCKED_BOOT_COMPLETED y BOOT_COMPLETED hasta la primera vez que se inicie cualquier proceso en el UID.

DISALLOW_DEADLINES_FOR_PREFETCH_JOBS

ID del cambio: 194532703
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, no permite establecer una fecha límite (mediante JobInfo.Builder.setOverrideDeadline(long)) para los trabajos de carga previa (JobInfo.Builder.setPrefetch(boolean)). Los trabajos de carga previa están diseñados para ejecutarse cerca del próximo lanzamiento de la app, por lo que no pueden tener fechas límite. Sin embargo, el sistema no descarta ni cancela ningún trabajo de carga previa con una fecha límite que se haya programado con anterioridad.

No hay manera de que una app mantenga un trabajo de carga previa con una fecha límite que se haya programado de forma permanente. Se ejecutarán los trabajos de carga previa con una fecha límite, y las apps con esta restricción no podrán programar nuevos trabajos de carga previa con una fecha límite. Si se reprograma un trabajo (y se proporciona true mediante el valor de muestra de JobService.jobFinished(JobParameters, boolean) o JobService.onStopJob(JobParameters)'s), se descarta la fecha límite. Los trabajos periódicos requieren que se cumplan todas las restricciones, por lo que estas no se aplican a sus fechas límite.

DOWNSCALED

ID del cambio: 168419799
Estado predeterminado: Inhabilitado para todas las apps.

Este cambio es el guardián de todos los cambios de escalamiento descendente de búfer por app. Inhabilitar este cambio evita que funcionen los siguientes factores de escala:

Cuando se habilita este cambio para un paquete de app, se fuerza el cambio de tamaño de la app al factor de escala más alto habilitado. Por ejemplo, se usará 80% si tanto 80% como 70% están habilitados.

DOWNSCALE_30

ID del cambio: 189970040
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 30% de la pantalla real.

DOWNSCALE_35

ID del cambio: 189969749
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 35% de la pantalla real.

DOWNSCALE_40

ID del cambio: 189970038
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 40% de la pantalla real.

DOWNSCALE_45

ID del cambio: 189969782
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 45% de la pantalla real.

DOWNSCALE_50

ID del cambio: 176926741
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALED también es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 50% de la pantalla real.

DOWNSCALE_55

ID del cambio: 189970036
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 55% de la pantalla real.

DOWNSCALE_60

ID del cambio: 176926771
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALED también es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 60% de la pantalla real.

DOWNSCALE_65

ID del cambio: 189969744
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 65% de la pantalla real.

DOWNSCALE_70

ID del cambio: 176926829
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALED también es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 70% de la pantalla real.

DOWNSCALE_75

ID del cambio: 189969779
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 75% de la pantalla real.

DOWNSCALE_80

ID del cambio: 176926753
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALED también es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 80% de la pantalla real.

DOWNSCALE_85

ID del cambio: 189969734
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALEDtambién es habilitado, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 85% de la pantalla real.

DOWNSCALE_90

ID del cambio: 182811243
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de DOWNSCALED también se habilita, habilitar este cambio para un paquete fuerza a la app a asumir que se está ejecutando en una pantalla con una resolución vertical y horizontal del 90% de la pantalla real.

DUMP_IGNORES_SPECIAL_ARGS

ID del cambio: 149254050
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, no se llama a dump(String, FileDescriptor, PrintWriter, String[]) si se llama a dumpsys activity con algunos argumentos especiales.

DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED

ID del cambio: 161145287
Estado predeterminado: Inhabilitado para todas las apps.

Si se habilita, es necesario que las apps configuren explícitamente Context.RECEIVER_EXPORTED o Context.RECEIVER_NOT_EXPORTED cuando se registre un receptor para una transmisión sin protección en el código.

Para obtener más información, consulta la sección Exportación más segura de receptores registrados en el contexto.

ENABLE_PENDING_INTENT_BAL_OPTION

ID del cambio: 192341120
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, protege a PendingIntent contra el abuso para iniciar la actividad en segundo plano.

ENABLE_SIMPLIFIED_DARK_MODE

ID del cambio: 214741472
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, permite que el contenido web aplique un estilo oscuro o claro según el tema de la app y el WebView para intentar oscurecer el contenido web mediante el oscurecimiento algorítmico cuando corresponda. Consulta setAlgorithmicDarkeningAllowed(boolean) para obtener más información.

ENABLE_TOUCH_OPAQUE_ACTIVITIES

ID del cambio: 194480991
Estado predeterminado: Habilitado para todas las apps.

En el caso de las apps que se ejecutan en Android 13 (nivel de API 33) o versiones posteriores, las actividades consumen todos los toques dentro de sus límites de tareas.

ENABLE_USE_EXACT_ALARM

ID del cambio: 218533173
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orienten a Android 13 (nivel de API 33) y versiones posteriores, permite que ciertos tipos de apps usen Manifest.permission.USE_EXACT_ALARM para programar alarmas exactas.

ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS

ID del cambio: 161252188
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, los componentes dejarán de recibir intents de llamadores externos que no coincidan con los filtros de intents declarados. Cuando una app registra un componente exportado en su manifiesto y agrega un filtro de intents, el componente puede iniciarse mediante cualquier intent, incluso aquellos que no coinciden con el filtro de intents, lo que resulta contradictorio para muchos desarrolladores. Sin verificar el intent cuando se inicia el componente, en algunas circunstancias, esto puede permitir que las apps de terceros activen una funcionalidad que solo está dentro de una app.

ENFORCE_STRICT_QUERY_BUILDER

ID del cambio: 143231523
Estado predeterminado: Inhabilitado para todas las apps.

Cuando se habilita, SQLiteQueryBuilder verifica todas las selecciones de consultas de CalendarProvider2 con argumentos maliciosos.

FORCE_DISABLE_HEVC_SUPPORT

ID del cambio: 174227820
Estado predeterminado: Inhabilitado para todas las apps.

Fuerza la inhabilitación de una app para que no sea compatible con la capacidad de contenido multimedia HEVC. Las apps deben declarar las capacidades de contenido multimedia admitidas en su manifiesto, pero esta marca puede usarse para forzar el acceso de una app a HEVC, lo que fuerza la transcodificación mientras se accede al contenido multimedia codificado en HEVC. La configuración de esta marca anulará cualquier valor predeterminado en el nivel del SO para las apps. Está inhabilitado de forma predeterminada, lo que significa que los valores predeterminados del SO tienen prioridad. Configurar esta marca y FORCE_ENABLE_HEVC_SUPPORT es un estado indefinido y provocará que el SO ignore ambas marcas.

FORCE_ENABLE_HEVC_SUPPORT

ID del cambio: 174228127
Estado predeterminado: Inhabilitado para todas las apps.

Fuerza a una app a admitir la capacidad de contenido multimedia HEVC. Las apps deberían declarar las capacidades de contenido multimedia en su manifiesto, pero esta marca se puede usar para forzar a la app a admitir HEVC. Por lo tanto, se debe evitar la transcodificación mientras se accede al contenido multimedia codificado en HEVC. La configuración de esta marca anulará cualquier valor predeterminado en el nivel del SO para las apps. Está inhabilitado de forma predeterminada, lo que significa que los valores predeterminados del SO tendrán prioridad. Configurar esta marca y FORCE_DISABLE_HEVC_SUPPORT es un estado indefinido y provocará que el SO ignore ambas marcas.

FORCE_NON_RESIZE_APP

ID del cambio: 181136395
Estado predeterminado: Inhabilitado para todas las apps.

Fuerza los paquetes a los que se aplica de modo que no puedan cambiar el tamaño.

FORCE_RESIZE_APP

ID del cambio: 174042936
Estado predeterminado: Inhabilitado para todas las apps.

Fuerza los paquetes a los que se aplica para que puedan cambiar el tamaño. Solo permitimos cambiar el tamaño en el modo de renderización de ventanas de pantalla completa, pero no se fuerza a la app a cambiar el tamaño del modo multiventana.

GET_API_SIGNATURES_FROM_UICC_PORT_INFO

ID del cambio: 202110963
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, una tarjeta SIM puede tener más de un ICCID activo al mismo tiempo. La compatibilidad con esta función la proporcionan varios perfiles habilitados (MEP).

GWP_ASAN

ID del cambio: 135634846
Estado predeterminado: Inhabilitado para todas las apps.

Habilita la detección de errores en la memoria nativa de muestra en las apps.

Para obtener más información sobre el uso de GWP-ASan, consulta la guía de GWP-ASan.

ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE

ID del cambio: 208739934
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, ahora se arroja una excepción cada vez que falla una operación del canal de cierre de ICC.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

ID del cambio: 169897160
Estado predeterminado: Inhabilitado para todas las apps.

Cuando está habilitada, la creación de la operaciones del almacén de claves puede fallar según la nueva estrategia de reducción. Los almacenes de claves solían trabajar bajo la suposición de que la creación de operaciones criptográficas siempre se realizaba correctamente. Sin embargo, el backend de KeyMint solo tiene un número limitado de ranuras de operación.

Para mantener la apariencia de las ranuras de las operaciones "infinitas", el daemon del almacén de claves reducía las operaciones usadas recientemente si no había una ranura de operación disponible. Como resultado, las operaciones buenas se podían finalizar de forma prematura. Esto llevaba a AndroidKeystore a la denegación del servicio (DoS) y un bloqueo activo no intencional. Por ejemplo, si varias aplicaciones se activaban al mismo tiempo debido a optimizaciones de administración de energía e intentaban realizar operaciones criptográficas, comenzaban a finalizar las operaciones entre sí sin ningún progreso.

A fin de eliminar los bloqueos activos y desalentar los intentos de DoS, cambiamos la estrategia de reducción para que prefiera clientes que usen pocas ranuras de operación. Como resultado, las operaciones individuales que no resultan inactivas por más de 5 segundos casi siempre concluirán sin problemas gracias a la estrategia de reducción. Aún existen algunas operaciones relacionadas con la encriptación del sistema de archivos que pueden reducir incluso estas operaciones, pero son casos poco frecuentes. Como efecto secundario de esta nueva operación de estrategia de reducción, ahora la creación puede fallar si el cliente tiene una potencia de reducción menor que todas las operaciones existentes.

Estrategia de reducción: A fin de encontrar un candidato adecuado, calculamos el malus para el emisor y cada operación existente. El malus es la inversa de la potencia de reducción (emisor) o la resistencia a la reducción (operación existente). Para que el emisor pueda reducir una operación, debe buscar una operación con un malus superior al suyo. Para obtener más información sobre la estrategia de reducción, consulta la implementación de operation.rs. En Android 11 (nivel de API 30) y versiones anteriores, KeyStore2 consultará el daemon del almacén de claves para obtener un espacio de operación libre. En el caso de las apps orientadas a Android 11 (nivel de API 30) y versiones anteriores, seguirá pareciendo que la inicialización del objeto de firma y el algoritmo de cifrado siempre es exitosa; sin embargo, obtener una operación podría demorar más tiempo. Todas las versiones de Android se benefician de la programación de ranuras de operación más justas y una mejor oportunidad para finalizar una operación con éxito.

MEDIA_CONTROL_SESSION_ACTIONS

ID del cambio: 203800354
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, los controles de contenido multimedia basados en las notificaciones de Notification.MediaStyle ahora tienen acciones basadas en PlaybackState de la sesión de contenido multimedia, en lugar de las acciones de la notificación.

Para obtener más información sobre este cambio, consulta la sección sobre los cambios en los controles de contenido multimedia en la página de cambios de comportamiento de Android 13.

NATIVE_HEAP_ZERO_INIT

ID del cambio: 178038272
Estado predeterminado: Inhabilitado para todas las apps.

Habilita la inicialización automática en cero de las asignaciones nativas de memoria del montón.

NATIVE_MEMTAG_ASYNC

ID del cambio: 135772972
Estado predeterminado: Inhabilitado para todas las apps.

Habilita la verificación de etiquetas de memoria asíncrona (ASYNC) en este proceso. Esta marca solo afecta el hardware que admite la extensión de etiquetado de memoria (MTE) de ARM.

NATIVE_MEMTAG_SYNC

ID del cambio: 177438394
Estado predeterminado: Inhabilitado para todas las apps.

Habilita la verificación de etiquetas de memoria síncrona (SYNC) en este proceso. Esta marca solo afecta el hardware que admite la extensión de etiquetado de memoria (MTE) de ARM. Si NATIVE_MEMTAG_ASYNC y esta opción están habilitadas, esta opción tiene prioridad y la MTE se habilita en modo SYNC.

NEVER_SANDBOX_DISPLAY_APIS

ID del cambio: 184838306
Estado predeterminado: Inhabilitado para todas las apps.

Fuerza los paquetes a los que se aplica de modo que nunca se aplique la zona de pruebas de la API de Display en letterbox ni en una actividad de SCM. Las API de Display continuarán proporcionando los límites DisplayArea.

Si deseas obtener más información sobre este cambio, consulta Display#getRealSize y getRealMetrics: baja y zona de pruebas.

NOTIFICATION_LOG_ASSISTANT_CANCEL

ID del cambio: 195579280
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, permite que los objetos de escucha comprendan el motivo más específico que se proporciona para la cancelación de notificaciones desde un asistente, en lugar de usar el REASON_LISTENER_CANCEL más general.

NOTIFICATION_PERM_CHANGE_ID

ID del cambio: 194833441
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, habilita los cambios de comportamiento relacionados con el permiso de tiempo de ejecución para las notificaciones.

Para obtener más información sobre este cambio, consulta la página sobre el nuevo permiso de tiempo de ejecución de notificaciones.

NOTIFICATION_TRAMPOLINE_BLOCK_FOR_EXEMPT_ROLES

ID del cambio: 227752274
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, Activity comienza a provenir de receptores o servicios de emisión en respuesta a la notificación, y los clics de acción de notificación se bloquean para la UX y los motivos de rendimiento para titulares de funciones previamente exentos (navegadores).

OVERRIDABLE_COMPONENT_CALLBACKS

ID del cambio: 193247900
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, registerComponentCallbacks(ComponentCallbacks) agrega un ComponentCallbacks a Activity o ContextWrapper.getBaseContext() en lugar de agregar siempre getApplicationContext().

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

ID del cambio: 191513214
Estado predeterminado: Inhabilitado para todas las apps.

Cuando se habilita, este ID de cambio fuerza a los paquetes a los que se aplica y al SDK de destino igual o inferior a M a ignorar el valor actual de android:resizeableActivity y a considerar que la actividad no puede cambiar de tamaño. En este caso, el valor de la rotación y el recorte de la cámara solo dependerán de la compensación necesaria si se considera la rotación actual de la pantalla.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

ID del cambio: 189229956
Estado predeterminado: Inhabilitado para todas las apps.

Cuando se habilita, este ID de cambio fuerza los paquetes a los que se aplican a anular el comportamiento predeterminado de rotación y recorte de la cámara, y a mostrar siempre CaptureRequest.SCALER_ROTATE_AND_CROP_NONE. En la siguiente tabla, se analizan el comportamiento predeterminado junto con todas las combinaciones de anulación posibles.

OVERRIDE_MIN_ASPECT_RATIO

ID del cambio: 174042980
Estado predeterminado: Inhabilitado para todas las apps.

Este cambio es el guardián de todos los cambios que fuercen una relación de aspecto mínima dada. Si se habilita este cambio, se podrán aplicar las siguientes relaciones de aspecto mínimas:

Cuando se habilita este cambio para un paquete de app, la relación de aspecto mínima proporcionada en el manifiesto de la app se anula con la relación de aspecto más grande habilitada, a menos que el valor del manifiesto de la app sea superior.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

ID del cambio: 180326787
Estado predeterminado: Inhabilitado para todas las apps.

Cuando el estado de OVERRIDE_MIN_ASPECT_RATIO también es habilitado, habilitar este cambio para un paquete establece la relación de aspecto mínima de la actividad en un valor grande definido por OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

ID del cambio: 180326845
Estado predeterminado: Inhabilitado para todas las apps.

Cuando también se habilita OVERRIDE_MIN_ASPECT_RATIO, habilitar este cambio para un paquete establece la relación de aspecto mínima de la actividad en un valor medio definido por OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

ID del cambio: 203647190
Estado predeterminado: Habilitado para todas las apps.

Cuando también se habilita OVERRIDE_MIN_ASPECT_RATIO, habilitar este cambio para un paquete limita cualquier cambio que fuerce la relación de aspecto mínima de una actividad a un valor determinado, como OVERRIDE_MIN_ASPECT_RATIO_LARGE y OVERRIDE_MIN_ASPECT_RATIO_MEDIUM, para actividades que también tienen una orientación vertical.

RATE_LIMIT_TOASTS

ID del cambio: 174840628
Estado predeterminado: Este cambio no se puede activar ni desactivar. Solo se registra en el marco de compatibilidad.

Habilita el límite de frecuencia en la cantidad de llamadas a Toast.show() para evitar que el usuario se sobrecargue con demasiados avisos en un tiempo limitado. Cualquier intento de mostrar más avisos de lo que se permite en un período determinado hará que se descarten los avisos.

REQUEST_LISTENING_MUST_MATCH_PACKAGE

ID del cambio: 172251878
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, TileService.requestListeningState(Context, ComponentName) verifica que el paquete de llamada (UID) y el paquete de ComponentName de destino coincidan. El sistema también verifica que el contexto utilizado pueda realizar acciones en nombre del usuario actual.

RETURN_ADVANCED_VIDEO_PROFILES

ID del cambio: 206033068
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, controla el tipo de perfiles de video que muestra getAll(String, int).

SHOULD_RESOLVE_PORT_INDEX_FOR_APPS

ID del cambio: 224562872
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, permite que las tarjetas SIM habiliten varios perfiles habilitados (MEP) en diferentes puertos. A fin de mantener la retrocompatibilidad para apps de operadores, cuando una app que se orienta al nivel de API 32 o versiones anteriores llama a switchToSubscription o descarga APIs sin especificar el índice de puerto, el sistema conserva el comportamiento existente usando siempre el índice de puerto 0, incluso si el dispositivo tiene habilitado el eUICC de MEP.

SWITCH_WITHOUT_PORT_INDEX_EXCEPTION_ON_DISABLE

ID del cambio: 218393363
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, el sistema arroja una excepción cada vez que se llama a switchToSubscription() sin portIndex para inhabilitar una suscripción.

THROW_ON_INVALID_PRIORITY_VALUE

ID del cambio: 140852299
Estado predeterminado: Habilitado para apps que se orientan a Android 13 (nivel de API 33) o versiones posteriores.

En el caso de las apps que se orientan a Android 13 (nivel de API 33) y versiones posteriores, el sistema arroja una excepción cuando una app proporciona un valor de prioridad no válido mediante JobInfo.Builder.setPriority(int). Es posible que las apps heredadas usen la API de forma incorrecta, por lo que la llamada falla de manera silenciosa si siguen usando la API.

USE_EXPERIMENTAL_COMPONENT_ALIAS

ID del cambio: 196254758
Estado predeterminado: Inhabilitado para todas las apps.

Cuando se habilita, el sistema permite que el paquete "android" use alias de componentes.