Updates zu Einschränkungen für Nicht-SDK-Schnittstellen in Android 13

Android 13 enthält aktualisierte Listen eingeschränkter Nicht-SDK-Schnittstellen, die auf der Zusammenarbeit mit Android-Entwicklern und den neuesten internen Tests basieren. Wann immer möglich, achten wir darauf, dass öffentliche Alternativen verfügbar sind, bevor wir Nicht-SDK-Schnittstellen einschränken.

Wenn deine App nicht auf Android 13 ausgerichtet ist, betreffen dich einige dieser Änderungen möglicherweise nicht sofort. Derzeit können Sie zwar einige Nicht-SDK-Schnittstellen verwenden (je nach Ziel-API-Level Ihrer App), aber bei Verwendung von Nicht-SDK-Methoden und -Feldern besteht immer ein hohes Risiko, dass Ihre App nicht mehr funktioniert.

Wenn du nicht sicher bist, ob deine App Nicht-SDK-Schnittstellen verwendet, kannst du die App testen, um es herauszufinden. Wenn Ihre App Nicht-SDK-Schnittstellen benötigt, sollten Sie eine Migration zu SDK-Alternativen planen. Uns ist aber bewusst, dass es bei einigen Apps gültige Anwendungsfälle für die Verwendung von Nicht-SDK-Schnittstellen gibt. Wenn Sie für ein Feature in Ihrer App keine Alternative zur Verwendung einer Nicht-SDK-Schnittstelle finden, sollten Sie eine neue öffentliche API anfordern.

Änderungen für Android 13 auflisten

Die Änderungen in Android 13 lassen sich in die folgende Kategorie einteilen:

  • Nicht-SDK-Schnittstellen, die unter Android 12 (API-Level 31) nicht unterstützt wurden und in Android 13 blockiert sind.

Laden Sie die folgende Datei herunter, um eine vollständige Liste aller Nicht-SDK-Schnittstellen für Android 13 herunterzuladen:

Datei: hiddenapi-flags.csv

SHA-256-Prüfsumme: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Nicht-SDK-Schnittstellen, die in Android 13 jetzt blockiert sind

Im folgenden Codefeld sind alle Nicht-SDK-Schnittstellen aufgeführt, die unter Android 12 (API-Level 31) nicht unterstützt wurden und in Android 13 (API-Level 33) blockiert sind. Das heißt, diese Schnittstellen gehören zur max-target-s-Liste. Ihre App kann sie also nur verwenden, wenn sie auf Android 12 (API-Level 31) oder niedriger ausgerichtet ist.

Wir möchten dafür sorgen, dass öffentliche Alternativen verfügbar sind, bevor wir Nicht-SDK-Schnittstellen einschränken. Uns ist bewusst, dass Ihre App möglicherweise einen gültigen Anwendungsfall für die Verwendung dieser Schnittstellen hat. Wenn eine Schnittstelle, die Ihre App in einer früheren Version verwendet, in Android 13 blockiert ist, sollten Sie für diese Schnittstelle eine neue öffentliche API anfordern.

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.