Atualizações para restrições de interface não SDK no Android 13

O Android 13 inclui listas atualizadas de interfaces não SDK restritas com base na colaboração de desenvolvedores do Android e nos testes internos mais recentes. Antes de restringirmos interfaces não SDK, sempre que possível, garantimos que haja alternativas públicas disponíveis.

Caso seu app não seja destinado ao Android 13, é possível que algumas dessas mudanças não afetem você imediatamente. No entanto, embora atualmente seja possível usar algumas interfaces não SDK (dependendo do nível da API de destino do app), o uso de qualquer método ou campo não SDK sempre apresenta um alto risco de corromper o app.

Se você não sabe se o app usa interfaces não SDK, é possível testá-lo para descobrir. Se ele depende de interfaces não SDK, planeje uma migração para alternativas SDK. No entanto, entendemos que alguns apps têm casos de uso válidos para interfaces não SDK. Se você não encontrar uma alternativa para deixar de usar uma interface não SDK em um recurso no app, solicite uma nova API pública.

Mudanças de lista do Android 13

As mudanças de lista no Android 13 se enquadram nesta categoria:

Para conferir a lista completa de todas as interfaces não SDK para Android 13, faça o download do arquivo abaixo:

Arquivo: hiddenapi-flags.csv

Soma de verificação SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Interfaces não SDK que agora estão bloqueadas no Android 13

A caixa de código abaixo lista todas as interfaces não SDK sem suporte no Android 12 (nível 31 da API) e bloqueadas no Android 13 (nível 33 da API). Ou seja, essas interfaces pertencem à lista max-target-s. Seu app só pode usá-las se ele for destinado ao Android 12 (nível 31 da API) ou versões anteriores.

Nosso objetivo é garantir que alternativas públicas estejam disponíveis antes de restringirmos as interfaces não SDK. Compreendemos que seu app pode ter um caso de uso válido para essas interfaces. Se uma interface que seu app usa em uma versão anterior estiver bloqueada no Android 13, solicite uma nova API pública para essa interface.

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead.
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead.
Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.
Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.