Mises à jour des restrictions d'interface non SDK dans Android 13

Android 13 inclut des listes à jour d'interfaces non SDK limitées grâce à la collaboration avec les développeurs Android et aux derniers tests internes. Dans la mesure du possible, nous nous assurons que des alternatives publiques sont disponibles avant de limiter les interfaces non SDK.

Si votre application ne cible pas Android 13, certaines de ces modifications ne vous affecteront peut-être pas immédiatement. Cependant, bien que vous puissiez actuellement utiliser certaines interfaces non SDK (en fonction du niveau d'API cible de votre application), l'utilisation d'un champ ou d'une méthode non SDK présente toujours un risque élevé d'endommager votre application.

Si vous n'êtes pas sûr que votre application utilise des interfaces non SDK, vous pouvez tester votre application pour le savoir. Si votre application repose sur des interfaces non SDK, vous devriez commencer à planifier une migration vers des alternatives SDK. Nous comprenons néanmoins que certaines applications ont des cas d'utilisation valides pour utiliser des interfaces non SDK. Si vous ne trouvez pas d'alternative à l'utilisation d'une interface non SDK pour une fonctionnalité de votre application, vous devriez demander une nouvelle API publique.

Liste des modifications apportées à Android 13

Les modifications apportées à la liste dans Android 13 relèvent de la catégorie suivante:

Pour obtenir la liste complète de toutes les interfaces non SDK pour Android 13, téléchargez le fichier suivant :

Fichier : hiddenapi-flags.csv

Somme de contrôle SHA256 : 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Interfaces non SDK désormais bloquées dans Android 13

La zone de code suivante liste toutes les interfaces non SDK qui n'étaient pas compatibles avec Android 12 (niveau d'API 31) et qui sont bloquées dans Android 13 (niveau d'API 33). Autrement dit, ces interfaces appartiennent à la liste max-target-s. Votre application ne peut donc les utiliser que si elle cible Android 12 (niveau d'API 31) ou version antérieure.

Notre objectif est de nous assurer que des alternatives publiques sont disponibles avant de restreindre les interfaces non SDK. Nous comprenons que votre application peut présenter un cas d'utilisation valide pour utiliser ces interfaces. Si une interface utilisée par votre application dans une version précédente est désormais bloquée dans Android 13, vous devez demander une nouvelle API publique pour cette 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.