Android 13 inclut des listes à jour de listes d'autorisations non SDK limitées grâce à une collaboration avec des développeurs Android 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 pourrait ne pas vous affecter 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.
Répertorier les modifications pour Android 13
Les modifications apportées à la liste dans Android 13 relèvent de la catégorie suivante:
- Interfaces non SDK non compatibles avec Android 12 (niveau d'API 31) qui sont bloqués sous Android 13.
Pour obtenir la liste complète de toutes les interfaces non SDK pour Android 13, téléchargez le 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 non compatibles
sur Android 12 (niveau d'API 31) qui sont bloquées dans Android 13 (niveau d'API 33). Cela
étant donné que ces interfaces appartiennent à la liste max-target-s
, votre application ne peut donc utiliser
ces interfaces s'il cible Android 12 (niveau d'API 31) ou version antérieure.
Notre objectif est de nous assurer que des alternatives publiques sont disponibles restreignez les interfaces non SDK, et nous sommes conscients que votre application peut avoir un code cas d'utilisation de ces interfaces. Si une interface utilisée par votre application version antérieure est désormais bloquée sous Android 13, vous devez demander une nouvelle version publique API 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.