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. Sie können derzeit zwar einige Nicht-SDK-Schnittstellen verwenden (abhängig von der Ziel-API-Ebene Ihrer App), aber die Verwendung von Nicht-SDK-Methoden oder -Feldern birgt immer ein hohes Risiko für Probleme mit Ihrer App.

Wenn Sie sich nicht sicher sind, ob Ihre Anwendung Nicht-SDK-Schnittstellen verwendet, können Sie die Anwendung testen. Wenn Ihre App Nicht-SDK-Schnittstellen verwendet, sollten Sie mit der Planung einer Migration zu SDK-Alternativen beginnen. Trotzdem können einige Apps für die Verwendung von Nicht-SDK-Schnittstellen infrage kommen. Wenn Sie für eine Funktion in Ihrer App keine Alternative zur Verwendung einer Nicht-SDK-Schnittstelle finden, sollten Sie eine neue öffentliche API anfordern.

Listenänderungen für Android 13

Die Listenänderungen in Android 13 lassen sich in die folgenden Kategorien einteilen:

Für eine vollständige Liste aller Nicht-SDK-Schnittstellen für Android 13 kannst du die folgende Datei herunterladen:

Datei: hiddenapi-flags.csv

SHA-256-Prüfsumme: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

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

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

Unser Ziel ist es, dafür zu sorgen, dass öffentliche Alternativen verfügbar sind, bevor wir Nicht-SDK-Schnittstellen einschränken. Wir sind uns bewusst, dass Ihre App möglicherweise einen gültigen Anwendungsfall für die Verwendung dieser Schnittstellen hat. Wenn eine Schnittstelle, die deine App in einer früheren Version verwendet hat, jetzt in Android 13 blockiert wird, solltest du 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.